Generating masking control circuits for test response compactors

ABSTRACT

Disclosed herein are exemplary embodiments of a so-called “X-press” test response compactor. Certain embodiments of the disclosed compactor comprise an overdrive section and scan chain selection logic. Certain embodiments of the disclosed technology offer compaction ratios on the order of 1000×. Exemplary embodiments of the disclosed compactor can maintain about the same coverage and about the same diagnostic resolution as that of conventional scan-based test scenarios. Some embodiments of a scan chain selection scheme can significantly reduce or entirely eliminate unknown states occurring in test responses that enter the compactor. Also disclosed herein are embodiments of on-chip comparator circuits and methods for generating control circuitry for masking selection circuits.

CROSS REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional PatentApplication No. 60/774,431, titled “Multi-Stage Test ResponseCompactors,” filed Feb. 17, 2006; U.S. Provisional Patent ApplicationNo. 60/832,466, titled “Multi-Stage Test Response Compactors,” filedJul. 22, 2006; and U.S. Provisional Patent Application No. 60/853,055,titled “Multi-Stage Test Response Compactors,” filed Oct. 20, 2006. Eachof these applications is incorporated herein by reference.

FIELD

The disclosed technologies relate to testing electronic circuits,particularly using compression hardware.

BACKGROUND

Testing an electronic circuit for possible defects can result in asignificant amount of test data (for example, test responses),particularly if the circuit is large and/or complicated. Test responsesstored by scan chains in a circuit can be compressed, for example, toallow for the responses to be analyzed using fewer test resources (forexample, test pins), possibly by automated testing equipment (ATE)external to the circuit. Test response compactors exist, but thecompaction ratio of these devices is often limited to the ratio of thenumber of scan chains to the number of compactor outputs. Accordingly,there is a need for compaction schemes providing potentially highercompaction ratios.

SUMMARY

Disclosed herein are exemplary embodiments of improved test responsecompactors, methods of operation and designing such compactors, andsystems using such compactors. Certain embodiments of such compactorsare referred to herein as “X-(su)press” or “X-press” test responsecompactors and comprise a first compaction section, a second compactionsection (sometimes referred to herein as the “overdrive section”), andscan chain selection logic for selectively masking one or more testresponse bits. Certain embodiments of the disclosed technology offercompaction ratios on the order of 1000×. Exemplary embodiments of thedisclosed compactor can maintain about the same coverage and about thesame diagnostic resolution as that of conventional scan-based testscenarios. Some embodiments of a scan chain selection scheme cansignificantly reduce or entirely eliminate unknown states occurring intest responses that enter the compactor.

Various aspects and features of the disclosed technology (which can berealized alone or in combination with one another) can include thefollowing: (1) an architecture of a multi-stage test response compactorthat works with multiple scan chains, generally preserves the benefitsof spatial compaction, and offers comparatively higher compressionratios; (2) a multi-level scan chain selection logic that can beintegrated with the compactor; and (3) a methodology for determiningper-pattern scan chain selection masks employed to suppress unknown(“X”) states based on a ranking of scan chains.

In some embodiments of the disclosed technologies, two-stage testresponse compactors with scan chain selection logic (for example, forselectively masking one or more test response bits) are provided.Embodiments of the compactor are capable of handling a wide range of Xstate profiles, offer compaction ratios higher than the ratio of scanchains to compactor outputs, and/or provide high diagnostic resolution.In addition, and in certain embodiments, on-chip comparator andregistration circuitry records fail log information. This can result ina significant reduction of test time. Furthermore, embodiments of themulti-stage compactors described herein can be useful for legacy coreswhere higher compression ratios can only be achieved by externalsolutions, as their scan chain configurations generally cannot bechanged.

Also described herein are exemplary methods for synthesizing selectionlogic for masking one or more test response bits. These techniques canreduce the data required to operate the selection logic. Moreover,exemplary selection techniques for determining mask bits (also referredto herein as “masking instructions” or “masking instruction bits”) forthe selection logic are disclosed.

One exemplary embodiment disclosed herein is an apparatus for compactingtest responses of a circuit-under-test. The apparatus includes, forexample, a first spatial compactor comprising a plurality offirst-compactor inputs and a first-compactor output; a registercomprising a register input coupled to the first-compactor output and aplurality of register outputs; and a second spatial compactor comprisinga plurality of second-compactor inputs coupled to the plurality ofregister outputs and a second-compactor output. In certainimplementations of these embodiments, the register is operable to loadtest response bits through the register input and to output the testresponse bits in parallel through the plurality of register outputs. Insome embodiments the first spatial compactor and the second spatialcompactor are feedback free. In certain embodiments, the first spatialcompactor and the second spatial compactor comprise respective networksof XOR or XNOR gates. In some embodiments, at least one of the firstspatial compactor and second spatial compactor is a pipelined spatialcompactor. The register can comprise two or more sequential elementscoupled in series. The register can also be operable to serially loadthe test response bits. In certain embodiments, the first spatialcompactor comprises a plurality of first-compactor outputs, and in someembodiments the second spatial compactor comprises a plurality ofsecond-compactor outputs.

In additional embodiments, the apparatus can further comprise a firstset of masking logic coupled to the plurality of first-compactor inputsand a second set of masking logic coupled between the plurality ofregister outputs and the plurality of second-compactor inputs. In someembodiments, the apparatus further comprises selection logic having oneor more selection-logic inputs and a plurality of selection-logicoutputs, the plurality of selection-logic outputs being coupled torespective inputs of the first set of masking logic and respectiveinputs of the second set of masking logic, the selection logic beingoperable to selectively control the first set of masking logic and thesecond set of masking logic in response to one or more maskinginstruction bits received at the one or more selection-logic inputs. Incertain embodiments, the selection logic comprises a network of digitallogic gates (for example, XOR or XNOR gates) configured according topolynomials (for example, polynomials describing respectiverelationships between at least one selection logic input and at leastone selection logic output). In some embodiments, the register is afirst register, the selection logic comprises a plurality ofselection-logic inputs, and the apparatus further comprises a secondregister having a second-register input and a plurality ofsecond-register outputs, the plurality of second-register outputs beingcoupled to the plurality of selection-logic inputs. In certainembodiments of the apparatus, the masking instruction bits areuncompressed bits received from, for example, an external tester, anon-chip memory, or an on-chip decompressor.

Another exemplary embodiment disclosed herein is a method for compactingtest responses of a circuit-under-test. In this exemplary embodiment, aplurality of uncompressed test response bits is compressed, therebyproducing a first set of compressed test response bits. The first set ofcompressed test response bits are loaded into a plurality of sequentialelements. The first set of compressed test response bits are unloaded inparallel from the plurality of sequential elements, and the first set ofcompressed test response bits are further compressed. In someembodiments, the loading occurs in a first period of two or more clockcycles, and the unloading occurs in a second period of one clock cycle.In certain embodiments, one or more of the uncompressed test responsebits are selectively masked before the uncompressed test response bitsare compressed and/or further compressed. In some embodiments, maskinginstruction bits for controlling the selective masking are loaded as theuncompressed test response bits are being compressed and/or as thecompressed test response bits are being further compressed. Circuits forcompressing test responses that are configured to perform these methodsare also disclosed.

Another exemplary embodiment disclosed herein is an apparatus forcompacting test responses of a circuit-under-test. The apparatus of thisembodiment includes two or more sequential elements having respectiveinputs and outputs. The sequential elements are operable to input agroup of two or more uncompressed test response bits through the inputsof the sequential elements and are further operable to output inparallel the group of uncompressed test response bits through theoutputs of the sequential elements. The apparatus further includes afirst spatial compactor comprising a plurality of first-compactor inputsand a first-compactor output. The first-compactor inputs are coupled tothe outputs of the sequential elements. In some embodiments, theapparatus further includes a second spatial compactor comprising aplurality of second-compactor inputs and a second-compactor output. Inthese embodiments, one of the plurality of second-compactor inputs iscoupled to the first-compactor output. In certain embodiments, the twoor more sequential elements are scan cells in a scan chain of thecircuit-under-test. In some embodiments, the two or more sequentialelements form a register coupled to an output of a scan chain of thecircuit-under-test. In certain embodiments, the first spatial compactorand the second spatial compactor are feedback free. In some embodiments,the first spatial compactor and the second spatial compactor compriserespective networks of XOR or XNOR gates. In certain embodiments, thesecond-compactor inputs are coupled to outputs of multiple additionalspatial compactors. In these embodiments, each additional spatialcompactor is configured to input additional uncompressed test responsebits received in parallel from additional respective sequentialelements. Some embodiments further comprise a first set of masking logiccoupled to the plurality of first-compactor inputs, and a second set ofmasking logic coupled to the plurality of second-compactor inputs. Incertain embodiments, the apparatus further comprises selection logichaving one or more selection-logic inputs and a plurality ofselection-logic outputs. In these embodiments, the plurality ofselection-logic outputs is coupled to respective inputs of the first setof masking logic and respective inputs of the second set of maskinglogic. Furthermore, the selection logic can be operable to selectivelycontrol the first set of masking logic and the second set of maskinglogic in response to one or more masking instruction bits received atthe one or more selection-logic inputs. The selection logic cancomprise, for example, a network of XOR or XNOR gates configuredaccording to polynomials. In certain embodiments, the apparatus furthercomprises a register having a register input and a plurality of registeroutputs. In these embodiments, the plurality of register outputs iscoupled to the plurality of selection-logic inputs.

Another exemplary embodiment disclosed herein is a method of testing acircuit-under-test. In this exemplary embodiment, test pattern data isprovided to inputs of a circuit-under-test during a first interval.Masking instructions for a masking circuit are provided to the inputs ofthe circuit-under-test during a second interval. In certain embodiments,the first interval precedes the second interval. In other embodiments,the second interval precedes the first interval. In some embodiments,the first interval comprises a third and a fourth interval and thesecond interval comprises a fifth and sixth interval, and the third andfourth intervals are interspersed with the fifth and sixth intervals. Incertain embodiments, the masking instructions are applied to a maskingcircuit as a test response to a test pattern generated from the testpattern data is being unloaded from the circuit-under-test. In someembodiments, the masking instructions are applied to a masking circuitas a test response to a test pattern generated from other test patterndata is being unloaded from the circuit-under-test. The method canfurther comprise masking one or more test response bits according to themasking instructions. Circuits for performing these exemplary methodsare also disclosed.

Another exemplary embodiment described herein is a method of generatingselection logic for a selection circuit used to control the masking ofunknown states during test response compaction. In this embodiment, acandidate polynomial for possible inclusion in a set of acceptedpolynomials is generated (for example, randomly). The candidatepolynomial and the accepted polynomials describe connections of two ormore inputs of the selection logic to a respective output of theselection circuit. One or more test sets of polynomials are selected.The test sets respectively comprise at least the candidate polynomialand one or more polynomials from the set of accepted polynomials. Rankvalues for the test sets are computed. The candidate polynomial isselected for inclusion in the set of accepted polynomials based at leastin part on the rank values. The set of accepted polynomials (with thecandidate polynomial) is stored on one or more computer-readable media.In certain embodiments, the method further includes generating a circuitdescription of the selection logic and storing the circuit descriptionof the selection logic on one or more computer-readable media. In theseembodiments, the selection logic implements polynomials from the set ofaccepted polynomials. In some embodiments, the method further includesdetermining whether the candidate polynomial shares more than a fixednumber of terms with one or more of the polynomials in the set ofaccepted polynomials, and generating a new candidate polynomial if thecandidate polynomial does share more than the fixed number of terms withone or more of the polynomials in the set of accepted polynomials. Incertain embodiments, the act of computing the rank values furthercomprises averaging the rank values for the two or more test sets ofpolynomials, and the act of selecting the candidate polynomial is basedat least in part on the average rank value. In some embodiments, theacts of generating, selecting, and computing are repeated for aplurality of additional candidate polynomials. In certain embodiments,the act of selecting the candidate polynomial for inclusion in theaccepted set of polynomials is further based on comparing the averagerank value of the candidate polynomial with respective average rankvalues of the additional candidate polynomials. In some embodiments, theact of computing the rank values for the two or more sets of polynomialscomprises determining reduced-row echelon forms of the two or more testsets of polynomials.

Another exemplary embodiment disclosed herein is a method of generatingmasking instructions for a selection circuit operable to mask testresponse bits during testing of a circuit-under-test. In thisembodiment, a test pattern being applied to the circuit-under-test issimulated to produce a test response. One or more unknown states areidentified in the test response. One or more test response bits areselected for masking based at least in part on the one or moreidentified unknown states. One or more indications of the selected testresponse bits are stored on one or more computer-readable media. Incertain embodiments, masking instructions for a selection circuit areencoded based at least in part on the selected one or more test responsebits. In some embodiments, one or more fault observation sites in thetest response are identified, and the selection of the one or more testresponse bits for masking is further based at least in part on the oneor more identified fault observation sites. In certain embodiments, theact of selecting one or more test response bits for masking comprisesassigning weights to one or more scan cells of a selected scan chain ofthe circuit-under-test based at least in part on the one or moreidentified unknown states, the one or more identified fault observationsites, or both the one or more identified unknown states and the one ormore identified fault observation sites. The method can further includeaggregating the weights for one or more groups of scan cells within theselected scan chain, computing one or more scores for the selected scanchain based at least in part on the aggregated weights, and determiningwhether to mask test response bits from the selected scan chain based atleast in part on the scores. In some embodiments, the weights representa type of value stored in the scan cells after the simulation of thetest pattern being applied. In certain embodiments, one of the scorescomputed for the selected scan chain is proportional to an estimatednumber of errors that will be preserved if the selected scan chain ismasked and/or one of the scores computed for the selected scan chain isproportional to an estimated number of errors that will be preserved ifthe selected scan chain is not masked.

Another exemplary embodiment disclosed herein is a method of generatingmasking instructions for a selection circuit operable to mask testresponse bits during testing of a circuit. According to this embodiment,weights are assigned to one or more scan cells of a selected scan chain.The weights are aggregated for one or more groups of scan cells withinthe selected scan chain. One or more scores are computed for theselected scan chain based at least in part on the aggregated weights. Adetermination is made whether to mask test response bits from theselected scan chain based at least in part on the scores. Thedetermination is stored on one or more computer-readable media. Incertain embodiments, masking instructions for the selection circuit areencoded based at least in part on the determination, and the maskinginstructions are stored on one or more computer-readable media. In someembodiments, the weights represent a type of value stored in the scancells after a test pattern is applied to a circuit-under-test. Incertain embodiments, the act of assigning weights comprises assigning afirst weight to a first respective scan cell in the selected scan chainthat captures an unknown value. In some embodiments, the act ofassigning weights comprises assigning a second weight to a secondrespective scan cell in the selected scan chain that captures a valueindicative of a targeted fault. In certain embodiments, the secondweight is greater than the first weight. In some embodiments, the act ofassigning weights further comprises assigning a third weight to a thirdrespective scan cell in the selected scan chain that capture a valuethat is neither unknown nor indicative of a targeted fault. In certainembodiments, the second weight is greater than both the first weight andthe third weight, and the third weight is greater than the first weight.In some embodiments, one of the scores computed for the selected scanchain is proportional to an estimated number of errors that will bepreserved if the selected scan chain is not masked and/or one of thescores computed for the selected scan chain is proportional to anestimated number of errors that will be preserved if the selected scanchain is masked. In certain embodiments, the acts of assigning,aggregating, and computing are repeated for one or more additional scanchains, thereby computing one or more scores for each of the one or moreadditional scan chain. In some embodiments, the act of determiningwhether to mask test response bits from the selected scan chain furthercomprises comparing the one or more scores of the selected scan chainwith the one or more scores for each respective additional scan chain.

Another exemplary embodiment disclosed herein comprises a method oftesting a plurality of circuits in a testing system. At a first input ofone of the plurality of circuits, masking data for controlling a maskingcircuit is received. At a second input of the one of the plurality ofcircuits, expected test response data for evaluating test responsesgenerated during testing of the one of the plurality of circuits isreceived. In this exemplary embodiment, the masking data and theexpected test response data are received simultaneously at the first andsecond inputs. In some embodiments, the test responses are compactedtest responses. In certain embodiments, the test responses are loadedinto a multiple-input shift register (MISR), one or more compactorsignatures are produced in the MISR, and the one or more compactorsignatures are stored in one or more computer-readable media. In someembodiments, a list of candidate fault locations is generated accordingto the one or more compactor signatures, and the list of candidate faultlocations is stored on one or more computer-readable media. In certainembodiments, one or more error vectors are generated based at least inpart on the test responses and the expected test response data. In theseembodiments, the error vectors can be compacted in a multiple-inputshift register to produce one or more compactor signatures, and the oneor more compactor signatures can be stored in one or morecomputer-readable media. The multiple-input shift register can produce acompactor signature from multiple error vectors input over a pluralityof shift cycles. For example, the multiple-input shift register canproduce one compactor signature per test pattern. In certainembodiments, an error vector is generated based at least in part on thetest responses and the expected test response data (for example, for asingle shift cycle), and the error vector is stored on one or morecomputer-readable media. In some embodiments, the test responses areloaded into a priority encoder circuit. In these embodiments, the testresponses comprise test response values from three or more compactoroutputs, and the priority encoder circuit is configured to detect threeor more errors in the test responses input in a single shift cycle.

Another exemplary embodiment disclosed herein is an apparatus comprisinga plurality of scan chain groups, each scan chain group of the pluralitycomprising one or more scan chains and one or more corresponding scanchain group outputs. The apparatus further comprises a plurality ofcomparator circuits, each comparator circuit of the plurality comprisinga comparator input and a comparator output. The apparatus also includesa multiple-input shift register (MISR) comprising MISR inputs and a MISRoutput. The apparatus additionally includes a plurality of compactors,each compactor of the plurality comprising one or more compactor inputscoupled to the scan chain group outputs of a respective one of theplurality of scan chain groups and further comprising a compactor outputcoupled directly to a respective one of the MISR inputs and also coupledto the comparator input of a respective comparator. In some embodiments,the apparatus further includes a memory with a first input coupled tothe MISR output and a second input coupled to a pattern counter. Incertain embodiments, the apparatus further comprises a plurality ofmasking gates, each masking gate being coupled between the compactoroutput of a respective one of the comparators and a respective input ofthe MISR.

Another exemplary embodiment disclosed herein is an apparatus comprisinga plurality of scan chain groups, each scan chain group of the pluralitycomprising one or more scan chains and one or more corresponding scanchain group outputs. The apparatus of this embodiment further comprisesa plurality of comparator circuits, each comparator circuit of theplurality comprising a comparator input and a comparator output. Theapparatus also comprises a multiple-input shift register (MISR)comprising MISR inputs coupled to the comparator outputs of respectivecomparators and a MISR output. The apparatus further comprises aplurality of compactors, each compactor of the plurality comprising oneor more compactor inputs coupled to the scan chain group outputs of arespective one of the plurality of scan chain groups and furthercomprising a compactor output coupled to the comparator input of arespective comparator. The apparatus further includes a first collectorcircuit coupled to one or more of the comparator outputs. The firstcollector circuit can be configured to record which one or more of theplurality of compactors produces one or more error outputs duringtesting. The apparatus also includes a second collector circuit coupledto one or more comparator outputs. The second collector circuit can beconfigured to record one or more time indicators for the one or moreerror outputs. In certain embodiments, the second collector circuit iscoupled to two or more of the comparator outputs through an OR gate.Some embodiments further include a memory having an input coupled to theMISR output. Certain embodiments further include a plurality of maskingcircuits, each masking circuit having a masking circuit input coupled tothe comparator output of a respective comparator and a masking circuitoutput coupled to a respective MISR input of the MISR.

Another exemplary embodiment disclosed herein is an apparatus fortesting a plurality of electronic circuits. The apparatus includes aplurality of scan chain groups, each scan chain group of the pluralitycomprising one or more scan chains and one or more corresponding scanchain group outputs. The apparatus also includes a plurality ofcomparator circuits, each comparator circuit of the plurality comprisinga comparator input and a comparator output. The apparatus furtherincludes an encoder circuit comprising a plurality of encoder inputs andan encoder output. The encoder inputs are coupled to respectivecomparator outputs. The apparatus also includes a plurality ofcompactors, each compactor comprising one or more compactor inputscoupled to the scan chain group outputs of a respective one of the scanchain groups and further comprising a compactor output coupled to thecomparator input of a respective comparator. The encoder of thisembodiment is configured to detect more than two error values outputfrom the compactor outputs (for example, during a single shift cycle).The encoder can additionally be configured to detect two or fewer errorvalues output from the compactor outputs. Some embodiments furtherinclude a plurality of masking circuits, each masking circuit having amasking circuit input coupled to the comparator output of a respectivecompactor and a masking output coupled to respective encoder inputs.Certain embodiments also comprise a memory coupled to the encoderoutput.

Any of the disclosed methods can be implemented as computer-readablemedia comprising computer-executable instructions for causing a computerto perform the methods. Further, computer-readable media storingsignatures produced by any of the disclosed compactors, storing lists offault candidates or faulty scan cell candidates identified by any of thedisclosed methods, storing circuit descriptions for implementing any ofthe disclosed compactor embodiments, or storing final or intermediateresults for any of the described methods are also disclosed.

The foregoing and other objects, features, and advantages of theinvention will become more apparent from the following detaileddescription, which proceeds with reference to the accompanying figures.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows an exemplary embodiment of a test response compactorarchitecture.

FIG. 2 shows a block diagram of one embodiment of a method forcompressing test responses.

FIG. 3 illustrates one example of how a selector circuit can be used tohandle X states that can appear in scan chains of a circuit-under-test.

FIG. 4 shows a block diagram of an additional embodiment of a testresponse compactor architecture.

FIG. 5 shows a block diagram of an additional embodiment of a testresponse compactor architecture.

FIG. 6 shows a block diagram of an additional embodiment of a testresponse compactor architecture.

FIG. 7 shows a block diagram of an additional embodiment of a testresponse compactor architecture.

FIG. 8 shows a block diagram of an additional embodiment of a testresponse compactor architecture.

FIG. 9 shows a block diagram of an additional embodiment of a testresponse compactor architecture.

FIG. 10 shows a block diagram of one embodiment of a method fordetermining masking signals for use with a selector circuit.

FIG. 11 shows one embodiment of a representation of scan chains.

FIG. 12 shows a block diagram of one embodiment of a method forselecting scan chains to mask.

FIG. 13 show a block diagram of one embodiment of a method for usingtest patterns in the presence of a selective compactor.

FIGS. 14 and 15 show tables describing experimental results of usingmethods and apparatus described herein.

FIG. 16 shows one embodiment of a selection logic circuit.

FIG. 17 shows a block diagram of one embodiment of a method forgenerating control logic for a selection circuit.

FIG. 18 shows one embodiment of a selection logic circuit.

FIG. 19 shows a block diagram of one embodiment of a method of findingtop-up stimuli for a test response compactor architecture.

FIG. 20 shows a block diagram of one embodiment of an exemplary on-chiptesting architecture.

FIG. 21 shows a block diagram of one embodiment of a priority encoder.

FIG. 22 shows a block diagram of a further embodiment of an exemplaryon-chip testing architecture.

FIG. 23 shows a block diagram of an additional embodiment of anexemplary on-chip testing architecture.

FIG. 24 shows a block diagram of one embodiment of a vertical collectorcircuit for use with the on-chip testing architecture of FIG. 23.

FIG. 25 shows a block diagram of one embodiment of a horizontalcollector circuit for use with the on-chip testing circuit compactorarchitecture of FIG. 23.

FIG. 26 illustrates a block diagram of a transformed circuit fordiagnosis.

FIG. 27 shows a block diagram of one exemplary method of performingfault diagnosis of a tested circuit.

FIG. 28 is a schematic block diagram of a network as may be used toperform any of the disclosed methods or to generate any of the disclosedcompactor embodiments.

FIG. 29 is a schematic block diagram of a distributed computing networkas may be used to perform any of the disclosed methods or to generateany of the disclosed compactor embodiments.

FIG. 30 is a flowchart illustrating how an embodiment of the disclosedcompactor can be generated in the network of FIG. 28 or FIG. 29.

FIG. 31 shows a block diagram of an additional embodiment of a testresponse compactor architecture.

FIG. 32 shows a block diagram of an additional embodiment of a testresponse compactor architecture.

FIG. 33 shows a block diagram of an additional embodiment of a testresponse compactor architecture.

DETAILED DESCRIPTION

Disclosed below are representative embodiments of electronic circuittesting techniques and associated apparatus that should not be construedas limiting in any way. Instead, the present disclosure is directedtoward all novel and nonobvious features and aspects of the variousdisclosed methods, apparatus, and equivalents thereof, alone and invarious combinations and subcombinations with one another. The disclosedtechnology is not limited to any specific aspect or feature, orcombination thereof, nor do the disclosed methods and apparatus requirethat any one or more specific advantages be present or problems besolved.

As used in this application and in the claims, the singular forms “a”,“an” and “the” include the plural forms unless the context clearlydictates otherwise. Additionally, the term “includes” means “comprises.”Moreover, unless the context dictates otherwise, the term “coupled”means electrically or electromagnetically connected or linked andincludes both direct connections or direct links and indirectconnections or indirect links through one or more intermediate elementsnot affecting the intended operation of the circuit.

Although the operations of some of the disclosed methods and apparatusare described in a particular, sequential order for convenientpresentation, it should be understood that this manner of descriptionencompasses rearrangement, unless a particular ordering is required byspecific language set forth below. For example, operations describedsequentially may in some cases be rearranged or performed concurrently.Moreover, for the sake of simplicity, the attached figures may not showthe various ways in which the disclosed methods and apparatus can beused in conjunction with other methods and apparatus. Additionally, thedescription sometimes uses terms like “determine” and “select” todescribe the disclosed methods. These terms are high-level abstractionsof the actual operations that are performed. The actual operations thatcorrespond to these terms will vary depending on the particularimplementation and are readily discernible by one of ordinary skill inthe art.

The disclosed embodiments can be implemented in, for example, a widevariety of integrated circuits that utilize scan-based or partiallyscan-based testing (for example, application-specific integratedcircuits (ASICs) (including mixed-signals ASICs), systems-on-a-chip(SoCs), or programmable logic devices (PLDs) such as field programmablegate arrays (FPGAs)). Such integrated circuits can be used in a vastassortment of electronic devices, ranging from portable electronics(such as cell phones, media players, and the like) to larger-scale items(such as computers, control systems, airplanes, automobiles, and thelike). All such items comprising integrated circuits with embodiments ofthe disclosed technology or equivalents are considered to be within thescope of this disclosure.

Any of the apparatus described herein can be designed, verified, and/orsimulated using software that comprises computer-executable instructionsstored on one or more computer-readable media. Such software cancomprise, for example, an electronic design automation (EDA) softwaretool, such as a design, verification, or simulation tool. Similarly, anyof the methods described herein can be performed or simulated (at leastin part) using software comprising computer-executable instructionsstored on one or more computer-readable media. Furthermore, anyintermediate or final results of the disclosed methods can be stored onone or more computer-readable media. For example, a software tool can beused to determine and store one or more control signals (for example,mask bits) used to control any of the disclosed apparatus. Any suchsoftware can be executed on a single computer or on a networked computer(for example, via the Internet, a wide-area network, a local-areanetwork, a client-server network, or other such network). For clarity,only certain selected aspects of the software-based implementations aredescribed. Other details that are well known in the art are omitted. Forthe same reason, computer hardware is not described in further detail.It should be understood that the disclosed technology is not limited toany specific computer language, program, or computer. For instance, awide variety of commercially available computer languages, programs, andcomputers can be used.

Further, any of the disclosed apparatus can be stored as circuit designinformation on one or more computer-readable media. For example, one ormore data structures containing design information (for example, anetlist, HDL file, or GDSII file) can be created (or updated) and storedto include design information for any of the disclosed apparatus. Suchdata structures can be created (or updated) and stored at a localcomputer or over a network (for example, by a server computer).Similarly, compressed test responses produced by any of the disclosedapparatus or control signals used to operate any of the disclosedapparatus (for example, mask bits) can be stored on one or morecomputer-readable media (for example, in one or more data structures).Such computer-readable media are considered to be within the scope ofthe disclosed technologies.

Moreover, any of the disclosed methods can be used in a computersimulation, ATPG, or other EDA environment, wherein test patterns, testresponses, and compressed test responses are determined by or otherwiseanalyzed using representations of circuits, which are stored on one ormore computer-readable media. For presentation purposes, however, thepresent disclosure sometimes refers to a circuit or its circuitcomponents by their physical counterpart (for example, scan cells,spatial compactors, registers, selection logic, logic gates, and othersuch terms). It should be understood, however, that any reference in thedisclosure or the claims to a physical component includesrepresentations of such circuit components as are used in simulation,ATPG, or other such EDA environments.

Introduction and Overview of Disclosed Technologies

Test response compaction, in conjunction with stimuli compression, canplay an important role in handling the growth of test data volume.Although the development of various compaction schemes reflects theneeds of various application domains, a test response compactordesirably preserves the observability of any scan cell for a wide rangeof unknown-state profiles, while maintaining high compaction ratios,providing the ability to detect a variety of failures found in realsilicon, and/or achieving design simplicity. It can also be desirable tocontrol compactor operations with a minimal amount of additionalinformation, so that this data will have little or no negative impact onthe effective test data volume compression.

In some cases, unknown states (also referred to herein as “X states”)can render tests useless when employing test response compaction. Inmany scan-based designs, X states, once captured in scan cells, aresubsequently injected into a compactor. Hence, they can affect aresultant signature, especially if a time compactor is used, where Xstates can quickly multiply (due to a feedback fan-out) and stay in thecompactor until a read out operation. Multiplication of unknown statescan be prevented in some compactor architectures, such as modular timecompactors which use simple binomials in the feedback. In some cases,such an arrangement can significantly reduce the negative impact of Xstates. Combinational compactors can flush out X states, but in order toavoid masking inputs from the scan chains and to allow diagnosis, suchcompactors typically have to observe each scan chain on two or moreoutputs. Finite memory compactors can flush out X states in a number ofscan shift cycles. However, even if a test response compactor isdesigned to tolerate a pre-specified amount of X states, its ability tohandle a wide range of X state profiles typically requires a scan chainselection (masking) mechanism. See, e.g., U.S. Pat. Nos. 6,557,129 and6,829,740, which are incorporated herein by reference. Otherwise,certain combinations of X states that cannot be eliminated by automatictest pattern generation (ATPG) can prevent observability of some scancells and cause a significant fault coverage drop.

Exemplary Test Circuit Compactor Architectures

FIG. 1 shows an exemplary embodiment 100 of a compactor architecture (anX-Press compactor architecture) comprising a first test responsecompactor 110 and a second test response compactor 152 in an embeddeddeterministic test environment having n scan chains 120. Compressed teststimuli can be provided to the scan chains 120 via a decompressor 130through one or more input channels (or input paths) 132, 134. In someembodiments, these channels can also be used in conjunction with inputchannels 136, 138 to deliver mask bits (masking instructions) to aselector circuit 140 via components 160, 162. In particular embodiments,the components 160, 162 are pipeline registers, while in otherembodiments they are demultiplexers. In further embodiments, there isnot necessarily a data dependency between the compressed test stimuliand the mask bits, as is discussed more fully below. The compactor 110can be a space compactor (or spatial compactor) comprising an XOR orXNOR tree and can be coupled to the scan chains 120 via the selectorcircuit 140. An output 112 of the first compactor 110 can be coupled toa v-bit overdrive register 150. In some embodiments the overdriveregister 150 can be implemented as a sequentially loading register, forexample, a shift register. The overdrive register 150 can comprise oneor more sequential elements, such as flip-flops or latches, coupled inseries. The overdrive register 150 can be configured to receivecompressed test responses from the first compactor 110 and provide themto the second compactor 152. The second compactor 152 can be a spacecompactor (or spatial compactor) comprising an XOR or XNOR tree. Inparticular embodiments, the first compactor 110 and/or the secondcompactor 152 comprise feedback free compactors. In further embodiments,the first compactor 110 and/or the second compactor 152 comprisepipelined spatial compactors.

FIG. 2 shows a block diagram of one exemplary embodiment of a method 200for compressing test responses using a test response compactorarchitecture such as the embodiment 100 of FIG. 1. In method act 210,test response bits from the scan chains 120 are compressed by thecompactor 110. In method act 220 the compressed test response bits areloaded into the v-bit overdrive register 150. In exemplary embodiments,the compressed test response bits are serially loaded into the register.This loading can occur, for example, over a period of two or more clockcycles. In method act 230, the compressed test response bits are furthercompressed by the second compactor 152. In exemplary embodiments, thecontents of the overdrive register are unloaded in parallel (possiblyover a period of one clock cycle) into the second compactor 152 andcompressed every v scan shift cycles. The unloading of the overdriveregister 150 and compression in the second compactor 152 can occurduring the same clock cycle as the last shift cycle from the v scanshift. In certain embodiments, the compressed test response bits areunloaded and compressed into the second compactor 152 during every clockcycle, but are only recorded every v scan shift cycles.

The compression ratio of scan chain inputs to compactor outputs that canpotentially be achieved using a two-stage compaction scheme, such asthat described in FIG. 2, can go beyond a limit determined approximatelyby the ratio between the number of scan chains n and the number ofcompactor outputs w. In some embodiments, for instance, the compressionratio can be increased by about a factor of v (for example, the ratiocan be approximately n×v:w).

For example, one embodiment of a test response compactor architectureaccording to the architecture of FIG. 1 comprises two tester inputchannels (for example, channels 132, 134), one compactor output channel(w=1), one hundred internal scan chains (n=100), and an overdriveregister ten bits (v=10). With conventional technologies the ratio ofscan chains to tester input channels sets the maximum compression level(for example, 50×). Using the disclosed technologies, however, the testdata compression ratio is approximately 100×10/1=1000×.

Returning to FIG. 1, the selector circuit 140 can comprise a first groupof logic gates 142 and second group of logic gates 144. One or moregroups of such logic gates are sometimes referred to herein as “maskinglogic.” In the depicted embodiment, these gates are shown as being ANDgates, but in further embodiments other logic gates (including multipletypes of logic gates) can be used. The selector circuit 140 can furthercomprise a selection logic circuit 146 configured to apply signals to atleast some of the first and second groups of logic gates 142, 144. Insome embodiments the selector circuit 140 can act in response to maskbits received (for example, through the input paths 136, 138). Infurther embodiments, at least some of the mask bits are provided to theselection logic 146 via a mask register 148. Design and implementationof the selection logic circuit 146 is described in more detail below.

In some embodiments, the selector circuit 140 can block or “mask” one ormore selected inputs to the first compactor 110 and/or the secondcompactor 152. The selected inputs can carry, for example, unknownstates and/or unwanted responses from the scan chains 120 and/or theoverdrive register 150. Inputs to the groups of logic gates 142, 144 canbe provided such that the unknown states and/or unwanted responses donot reach the compactors 110, 152, and are instead replaced by knownvalues (for example, a “0” or “1”).

In some embodiments, the following signals can be provided to one ormore gates in the groups of logic gates 142, 144. To block a selectedscan chain output or a selected overdrive register output (for example,to suppress an X state), a “0” value can be provided to one or more ofthe gates. A “1” value can be provided to one or more of the gates tocause the selector circuit 140 to pass values (for example, valuesindicative of a targeted or untargeted fault) to a compactor. For scanchain outputs or overdrive outputs whose content is not consideredcritical (for example, are not associated with a scan cell whose valueis indicative of a targeted or untargeted fault), a “don't care” valueof either “0” or “1” can be assigned to logic gates for those outputs.These values can vary depending on the implementation.

In this application and in the claims, “first compactor stage” generallyrefers to the first compactor 110 and the group of logic gates 142,while “second compactor stage” generally refers to the second compactor152, the group of logic gates 144 and the overdrive register 150.

FIG. 3 is a schematic block diagram illustrating one example of how theselector circuit 140 can be used to handle X states that can appear inthe scan chains 120. In the depiction of FIG. 3, the overdrive register150 is a 4-bit shift register. Accordingly, in the left half of FIG. 3the data cycles in the scan chains 120 are shown as being grouped intoblocks of four cycles, as indicated by the capital letters “A,” “B” and“C.” Individual cycles in each block are respectively labeled withlower-case letters “a,” “b,” “c” and “d.” In the right half of FIG. 3,compressed test response bits 302 of block A are shown loaded into theoverdrive register 150. (Although the left and right halves of FIG. 3show events that do not happen simultaneously, they are shown in onefigure for ease of reference.) Block A in the right half of FIG. 3comprises bits that are the result of compressing uncompressed testresponse bits from multiple scan chains. For example, a compressed testresponse bit 308 is the XORed value of uncompressed test response bits 1to n from the d cycle of the A block. Compressed test response bits 304,306 of blocks B and C, respectively, can be loaded in succession intothe overdrive register 150.

As shown on the left-hand side of FIG. 3, scan chain cycle 310 (i.e.,cycle b of block B) contains an X state in cell 312 of scan chain 2.This X state can hide errors captured in the same scan-out cycle (i.e.,in cycle b of block B in the other scan chains). Subsequently, this Xstate can invalidate test results in the block B as a whole (forexample, after block B is compressed by the compactor 152). This isbecause, in the depicted embodiment and in the absence of any masking,the compressed content of the cells comprising block B are loaded intothe overdrive register 150 in such a way that data for cycles a, b, cand d of a block are processed simultaneously by the second compactor152. In some embodiments, the X state can be masked by the one of thelogic gates 142 such that the X state is not passed to the firstcompactor 110. In some embodiments, mask signals are provided to thelogic gates on a per-pattern basis, though in other embodiments maskingsignals are applied in other intervals (for example, on amultiple-pattern basis, a cycle-by-cycle basis, or a multiple-cyclebasis). Accordingly, using the logic gates 142 to mask one cell in thescan chains 120 results in masking values for the entire scan chain,which can prevent test response bits indicative of targeted faults(error values) from being observed from the masked scan chain. Analternative approach is to allow the cycle 310 to be compressed by thefirst compactor 110. The second-stage logic gates 144 can then be usedto mask the compressed b cycle containing the unknown state. If masksignals are provided to the second-stage logic gates 144 on aper-pattern basis, masking at this stage can potentially eliminate notonly errors occurring in every v-th cell in the scan chain, but alsounknown states captured in those cells.

Additional embodiments of test circuit compactor architectures appear inFIGS. 4-7. FIG. 4 shows one embodiment of a test response compactorarchitecture 400 where the scan chains 410 are partitioned into groups412 and 414. Data from each scan chain group is compressed by a separatecompactor 420, 422 and fed into respective separate overdrive registers430, 432. Values in the overdrive registers 430, 432 can be compressedby another compactor 440. Inputs to the compactors 420, 422, 440 can bemasked using one or more selector circuits 450, as is similarlydescribed above. In the embodiment of FIG. 4, a bit in one overdriveregister can be masked while bits in the other overdrive register remainunmasked. Thus, the impact of an X state in one of the scan chain groups412, 414 on results obtained from the other scan chain group can bereduced. Although only two first-stage compactors and overdriveregisters are shown in FIG. 4, it is to be understood that multipleadditional compactors and registers could be used in the illustratedarchitecture.

FIG. 5 shows another embodiment of a test response compactorarchitecture 500 configured to provide multiple outputs. Similar to thetest circuit compactor architecture 400 of FIG. 4, architecture 500comprises scan chains 510 partitioned into groups 512, 514, the groupsproviding test response data that is compressed by compactors 520, 522.These compactors 520, 522 feed data into respective overdrive registers530, 532. In the architecture 500, the overdrive registers 530, 532 feedcompacted responses into separate respective compactors 540, 542 insteadof the same compactor. This can isolate a first scan chain group fromthe effects of an X state in a second scan chain group with or withoutmasking one or more inputs to the compactors 520, 540, 542. Inembodiments where masking can be used, the architecture can furthercomprise one or more selector circuits 550. Although only twofirst-stage compactors, overdrive registers, and second-stage compactorsare shown in FIG. 5, it is to be understood that multiple additionalcompactors and registers could be used in the illustrated architecture.

FIG. 6 depicts an additional embodiment of a test response compactorarchitecture 600 configured to provide multiple outputs. In thisembodiment, compactors 610, 612 compress outputs from multiplerespective scan chain groups (not shown) and provide the compressedoutputs to respective overdrive registers 620, 622. The overdriveregisters 620, 622 provide inputs to two compactors 630, 632. In thisembodiment, non-consecutive bits from the overdrive registers can beprovided to the compactors 630, 632 to reduce the impact of bursterrors. For example, an output 640 from the overdrive register 620 canbe routed to an input 642 on the compactor 632, rather than to an inputon the compactor 630. Other routing configurations can also be used. Thetest circuit compactor architecture can further comprise one or moreselector circuits 650. Although only two first-stage compactors,overdrive registers, and second-stage compactors are shown in FIG. 6, itis to be understood that multiple additional compactors and registerscould be used in the illustrated architecture.

An additional embodiment of a test response compactor architecture 700appears in FIG. 7. The depicted embodiment is configured to reduce theeffect of burst errors while providing a single output. Compressedoutputs from a compactor 710 are provided to a first overdrive register720 and to a multiplexer (MUX) 730. The overdrive register 720 alsofeeds into the MUX 730, which is in turn coupled to a second overdriveregister 722. The overdrive registers 720, 722 are clocked by a clocksignal 732, and a divided version of the clock signal (produced by-clockdivider 733) is provided to the MUX 730. This arrangement can allow theoverdrive register 722 to provide a non-consecutive group of outputs toa compactor 740. The architecture 700 can further comprise one or moreselector circuits 750. Although only one first-stage compactors, twooverdrive registers, and one second-stage compactors are shown in FIG.7, it is to be understood that multiple additional compactors andregisters could be used in the illustrated architecture.

FIG. 8 shows a block diagram of another embodiment of a test responsecompactor architecture 800. In this embodiment, one or more overdriveregisters 802, 804 are placed in the first stage of the compactorarchitecture 800. More particularly, the overdrive registers 802, 804receive inputs from one or more scan chains. For example, overdriveregister 802 receives inputs from scan chain 812. Although FIG. 8 showsonly two overdrive registers, it is to be understood that, in thisembodiment, one overdrive register is coupled to each of the scan chains810. In other embodiments, other numbers of registers are coupled to thescan chains. The overdrive registers 802, 804 are configured to loadinputs from their respective scan chains into a first stage ofcompactors. For example, overdrive registers 802, 804 load valuesreceived from scan chains 812, 814 into first-stage compactors 822, 824,respectively. Generally, values are loaded in parallel from theoverdrive registers 802, 804 into the first-stage compactors 822, 824.Outputs from the first-stage compactors 822, 824 can be subsequentlycompacted by a second-stage compactor 830. The compactor architecture800 can further comprise a selector circuit 840 for masking one or moreinputs to the compactors 822, 824, 830. The selector circuit 840 can besimilar to the selector circuits of other compactor architecturesdescribed above. Although only two first-stage compactors and overdriveregisters are shown in FIG. 8, it is to be understood that multipleadditional compactors and registers could be used in the illustratedarchitecture.

FIG. 9 shows a block diagram of a further embodiment of a test responsecompactor architecture 900. In this embodiment, instead of providinginputs to a first stage compactor 902 from an overdrive register, inputscan be loaded in parallel directly from v scan cells in a scan chain(usually, the last v cells of the chain) every v clock cycles. Forexample, in FIG. 9, scan chain 912 provides inputs to a compactor 902from v scan cells 922 at the end of the chain 912. (In FIG. 9, in orderto aid clarity, the individual cells are not shown.)

FIG. 31 shows a block diagram of a further embodiment of a test responsecompactor architecture 3100 comprised of a compactor 3110 in afirst-stage and a compactor 3120 in a second stage. The compactor 3110comprises multiple outputs 3112, 3114 coupled to respective overdriveregisters 3130, 3132. The compactor 3120 comprises multiple outputs3122, 3124, 3126. Generally, test compactor architectures describedherein can be adapted to embodiments comprising one or more compactorswith multiple outputs.

FIG. 32 shows a block diagram of another embodiment of a test responsecompactor architecture 3200 where one or more scan chain outputs and/oroverdrive register outputs can each drive multiple compactor inputs (forexample, the outputs can have fan-out). For example, in the depictedembodiment a scan chain 3202 has a scan chain output 3204 that iscoupled to compactor inputs 3210, 3212 through respective masking gates3214, 3216. Thus the scan chain output 3204 can drive two compactors3220, 3222. An overdrive register output 3230 similarly drives inputs3232, 3234 of two second-stage compactors 3240, 3242, respectively.

FIG. 33 shows a block diagram of an additional embodiment of a testresponse compactor architecture 3300. This embodiment is similar to thearchitecture 900 of FIG. 9 in that inputs to a compactor 3310 can beloaded in parallel from v cells in a scan chain. For example, a scanchain 3320 provides inputs to the compactor 3310 from the scan cells3330 of the scan chain 3320. In the depicted embodiment, the compactor3310 comprises multiple outputs, and the architecture 3300 is asingle-stage compactor architecture. In further embodiments, compactorinputs can be loaded from one or more overdrive registers instead ofdirectly from the scan chains themselves, similar to the architecture800 of FIG. 8.

Masking Signal Selection Methods

The selection of masking signals for selector circuits (for example, inselector circuit 140 of FIG. 1, the mask signals provided by theselection logic 146 to the groups of logic gates 142, 144) can have asignificant impact on test quality. Masking signals can be chosen usingdifferent methods. In some embodiments, for a given test pattern appliedto a circuit design, scan chains are ranked according to one or morefactors (for example, potential coverage gains or losses in detectingpossible faults that can result from masking or not masking the chain).For purposes of this discussion, a single scan cell is chosen as aprimary fault propagation site. This approach allows faults to behandled in a uniform manner. Otherwise, faults with a small number ofpropagation sites might be difficult to detect due to a dominantposition of faults with a large number of observation points.

FIG. 10 shows a block diagram of one embodiment of a general method 1000for determining masking signals for use with a selector circuit, such asselector circuit 140. The disclosed embodiment can be performed, forexample, for each test pattern of a test set to be applied duringtesting and can use simulation results (for example, from a simulationof the test pattern being applied to the circuit-under-test) todetermine the respective weights to be assigned. The method 1000 canalso be used with a variety of compactor architectures (for example,XOR, X-compact, I-compact, and others). In method act 1010, weights areassigned to a plurality of individual scan cells in one or more scanchains. For example, assuming that a given cell is observed, the cell'sweight can indicate the cell's contribution to the total error coverage.In some embodiments, weights can be assigned as follows: scan cells thatcapture unknown states can be assigned a weight of “0”; scan cells thatcapture don't care states can be assigned a value of “1”; and scan cellswhich are likely to be affected by faults (termed herein “primary”cells) can be assigned a weight “C.” By assigning a weight of 1 to cellscapturing don't care states, those cells can be included in analysesthat lead to masking decisions. Since faults often propagate to morethan one scan cell, it can be beneficial to have such cells observed(for example, if the primary cell is masked). To retain priority amongscan cells, however, the weight C associated with primary cells isdesirably large enough so that the combined effect of having many or allcells with don't care values observed does not significantly reduce thevisibility of one or more primary cells.

FIG. 11 shows one embodiment of a representation 1100 of five scanchains 1102, 1104, 1106, 1108, 1110 each comprised of 24 scan cells. Thescan cells have been assigned a weight of 0, 1, or 30 (the value of C inthis embodiment) according to method act 1010. For example, a scan cell1120 has been assigned a weight of 1, indicating that it captured adon't care value, whereas scan cell 1122 has been assigned a weight of30, indicating that it captured a value indicative of the presence of afault.

Returning to FIG. 10, in method act 1020, the weights for a plurality ofthe scan cells within one or more of the scan chains are aggregated. Theweights are desirably aggregated according to how the scan cells will becompacted during the next compaction stage. For example, in certainexemplary embodiments, the scan chain representation 1100 is mapped to arepresentation referred to herein as a “compound chain.” A compoundchain can be created from the weights assigned to a scan chain byrepresenting several scan cells from a chain in a single compound cell.In some embodiments v consecutive scan cells in a chain can berepresented by one compound cell. A weight can be assigned to a compoundcell based at least in part on values in one or more original scan cellsthat the compound cell represents. In some embodiments, a compound cellweight is the sum of the weights of the original cells. Additionally, acompound cell can be assigned a weight of “0” if one of the originalcells to be included as part of the compound cell has a weight of “0”(for example, if one of the original cells captures an X state). Inparticular embodiments, this can anticipate, to some extent, possibleresults of compaction of data provided by an overdrive register. Asexplained above, an X state that is not suppressed before a firstcompaction stage can potentially render lots of error data useless,either due to X-masking or due to the second stage gating. In someembodiments, blocking certain X states earlier in a compaction processcan help prevent a significant coverage drop.

FIG. 11 shows exemplary embodiments of the scan chains 1102, 1104, 1106,1108, 1110 mapped into compound chains 1132, 1134, 1136, 1138, 1140,respectively. For ease of reference, in FIG. 11 the scan chains 1102,1104, 1106, 1108, 1110 are shown divided into 4-cell groups T, U, W, X,Y and Z. The columns of the compound chains (sometimes referred toherein as “time frames”) are labeled to indicate which 4-cell group acompound cell represents. For example, the compound cell in the T columnof compound chain 1136 has a weight of 33, which is the sum of the scancells in group T of scan chain 1106. The compound cell in column T ofcompound chain 1132 has a value of 0, since one cell in group T of scanchain 1106 has a weight of 0.

In certain embodiments, mask selection can be based on the weights ofthe original scan chains instead of the weights of the compound scanchains. This can be used if, for example, no cell or few cells in thecompound chains have a weight at least equal to C.

In method act 1030 of method 1000, coefficients (sometimes referred toherein as “scores”) can be determined based, for example, on theaggregated weights in one or more compound scan chains. In someembodiments, coefficients S_(i) and M_(i) are computed for the compoundscan chains. In such exemplary embodiments, S_(i) is proportional to theestimated number of errors that will be preserved provided scan chain iis selected, and coefficient M_(i) is proportional to the estimatednumber of errors that will be preserved if the scan chain i is masked.

Let X(i) be the set of zero-weight cells hosted by the compound scanchain i. Furthermore, for a given c-th cell of all compound scan chains,let E_(c) and X_(c) represent the sum of weights over these cells andthe number of cells that have weight zero, respectively. CoefficientS_(i) can then be given by exemplary equation 1: $\begin{matrix}{S_{i} = {{\sum\limits_{c}\quad{w_{i,c}2^{- X_{c}}}} - {\sum\limits_{c \in {X{(i)}}}\quad{E_{c}\text{/}X_{c}}}}} & (1)\end{matrix}$where w_(i,c) is the weight of cell c in the compound scan chain i.S_(i) in equation 1 is equal to the total weight over all cellsoccurring in a given compound scan chain and scaled by the probabilitythat X states occurring in the corresponding time frames will be masked(it is assumed that a single scan chain is masked with probability 0.5).S_(i) is affected in equation 1 by the weights E_(c) associated with thesame time frames as those of X states hosted by a given scan chain.E_(c) is scaled by the number of corresponding X states, in order toavoid double counting. As can be seen, the second component can accountfor errors which can be X-masked if the scan chain itself is not masked.

As an example, the above quantities for the compound scan chains shownin FIG. 11 can be determined where i=1 (i.e., compound scan chain 1134).In this example, C=30 and X(1)={0, 3} (i.e., cells 0 and 3 of compoundscan chain 1 have weights of 0). Also, E₀=37, E₃=70, X₀=3, X₃=2. Hence,S₁ is computed as:S ₁=62×0.5+33×0.5+4×0.5+4×0.25−37/3−70/2=3.2  (2)

In some embodiments, the quantity M_(i) can be determined as:$\begin{matrix}{M_{i} = {{\sum\limits_{c \in {X{(i)}}}{E_{c}2^{- {({X_{c} - 1})}}}}\quad - {\sum\limits_{c}\quad{w_{i,c}\left( {X_{c} + 1} \right)}^{- 1}}}} & (3)\end{matrix}$

In this exemplary equation, the first term is equal to the sum overweights E_(c) corresponding to the same time frames as those of X states(now masked) hosted by a given scan chain, assuming that they are notmasked by other unknown states from the same shift cycles. The secondterm reduces the first by weights of cells occurring in the masked scanchain, calibrated by X's from other scan chains, and including themasked chain itself. In various embodiments, either S_(i) or M_(i) canbe negative, thus indicating a possible coverage drop when eitherselecting or gating a given scan chain.

Returning to FIG. 10, in method act 1040, a decision whether to mask agiven chain can be made based at least in part on the coefficients (forexample, the values of S_(i) and/or M_(i) for the chain).

FIG. 12 shows one embodiment of a method 1200 for selecting scan chainsto mask, given a test pattern, one or more detected faults, andcorresponding locations of failing scan cells and unknown states. Method1200 can be integrated with the general method 1000 introduced above.

In method act 1210, coefficients (for example, S_(i) and/or M_(i)) forone or more scan chains are determined. In method act 1220, coefficientsfor two or more scan chains are compared. In method act 1230, one ormore chains can be chosen for selection or masking based at least inpart on the coefficients. For example, in some embodiments a scan chainhaving a large or the largest value of S_(i) can be assigned a maskingbit value of 1, indicating that values from that chain should be passedto a compactor. A scan chain having a large or the largest value ofM_(i) can be assigned a masking bit value of 0, indicating that valuesfrom the scan chain should be masked.

In method act 1240, a representation of the contents of the scan chainscan be updated based on decisions (which can be preliminary) in methodact 1230. For example, in the representation (such as representation1100), errors and/or X states can be deleted from scan chains that havebeen assigned a masking value of 0. One or more of the foregoing methodacts can be repeated, as indicated by arrow 1242, such that masking bitvalues can be iteratively assigned to one or more other scan chains.

In method act 1250, the mask bit assignments are encoded. For example,in certain embodiments, this procedure involves assigning the maskingsignals to the scan chains of the circuit-under-test and determining thenecessary mask bits to be input into the selection circuit to achievethe desired masking. In particular embodiments, the masking signals areassigned according to values of S_(i) or M_(i) and are consideredsequentially in the order in which the scan chains were considered inthe above method acts. In certain embodiments, this confirmationprocedure involves solving linear equations to determine whether and howthe desired masking signals are to be generated in the selectioncircuit. In the illustrated embodiment, the process proceeds until thefirst encoding error occurs (for example, the first scan chain isconsidered that cannot have the masking signals preliminarily assignedto it). Furthermore, in one particular embodiment, regardless of theorder determined by coefficients S_(i) and M_(i), the encoding processstarts with a scan chain whose mask signal is 1. This modification canbe implemented to prevent all masking bits from being set to 0 byencoding, at the very beginning of the procedure, masking signals for alarge group of scan chains that should be masked. Such an approach wouldpotentially make all scan chains unobservable.

In method act 1260, the remaining unencoded masking signals that werenot the subject of encoding are evaluated and encoded, if possible, inview of the selector architecture.

In additional embodiments, the selection method described above can beapplied to the second stage of compaction as well. In such embodiments,masking signals can be determined with respect to values in compressedcycles, such as the compressed cycles 302, 304, 306 of FIG. 3. Weightscan be assigned to the values in the compressed cycles. A weight can berelated to, for example, an error count indicating how many of the scancells (in unmasked chains) from which the compressed value was producedare fault propagation sites. In some embodiments, if a given scan cellcaptures an X and the cell's scan chain is not masked, a certain weight(for example, 0) can be assigned to a compressed value produced from thecell.

Exemplary Experimental Compaction Results

An exemplary embodiment of the test circuit compactor architectureillustrated in FIG. 1 was tested on several industrial designs. In thereported experiments the mask register was loaded once per pattern. Suchan approach contributed a relatively small amount of data to the totalvolume of test data and consequently did not compromise the overallcompression ratio. Generally, the presence of X states and the use ofselection logic can cause several test escapes when applying originaltest patterns. Therefore, top-up patterns were used to restore thecomplete fault coverage. The corresponding increase in pattern count andthe effective compression can be used as basic figures of merit toassess the performance of the compaction scheme.

FIG. 13 shows a block diagram of a method 1300 for using test patternswith a selective compactor (for example, the compactor architecture 100of FIG. 1). The method 1300 was used for obtaining experimental resultsdescribed below. Starting with an original fault list, in method act1310 a test pattern was generated, and in method act 1320 faultpropagation sites and X state locations were determined for one or morescan chains in the test circuit architecture. For example, theapplication of the test pattern to the circuit-under-test and thecircuit-under-test's response to the test pattern (the test response)can be simulated. In method act 1330 values for masking or selectingscan chains and/or overdrive register values were determined (usingmethod 1200 described above). In method act 1340, fault coverage wasexamined in view of the determined masking values. In method act 1350,detected faults were removed from the original fault list. In method act1360, the number of test patterns used to arrive at a given level offault coverage was recorded, and in method act 1370 the mask bits forcontrolling the compactor were also stored. The method 1300 was repeateduntil the faults on the original fault list were detected, as indicatedby arrow 1372.

The results of the experiments are summarized in Table 1 (appearing inFIG. 14) and in Table 2 (appearing in FIG. 15). For each circuit thefollowing information is provided: name, scan architecture, and thetotal number of faults; the total number of error bits (the number ofscan cells that capture erroneous signals); the number of test patternswhich contribute to the fault coverage (“FC”) assuming that there is nocompaction; the sequential depth of deployed test patterns; the X-fillrate computed as a ratio of the total number of captured X states to thenumber of scan cells multiplied by the number of test patterns; the sizem of the mask register; the size v of the overdrive register; the totalnumber of patterns and the corresponding increase in pattern countrepresented as absolute values (in the columns labeled “IPC”), and as apercentage of the original number of tests (in the columns labeled “%”);and the effective compaction ratio C. In Tables 1 and 2, C=AsL/T(L/v+c), where A is the number of original patterns, T is the totalnumber of test patterns, s is the number of scan chains, L is the sizeof the longest scan chain, and c=m+v is the amount of X-Press compactorcontrol data (for example, the number of mask bits).

The experiments were run using four values of m, starting from thesmallest one required by a given scan chain configuration, eight valuesof the overdrive factor v, and a single-output compactor. Circuitsreported in Tables 1 and 2 feature a wide range of X-fill rates startingfrom about 0.001% (C6) up to about 2.6% (C7). Consequently, theresultant increase in a pattern count significantly varies from lessthan 1% for circuits with a low X-fill rate (for example, C6) up to asmuch as 111%, if a design sees a high percentages of X's (for example,C7). Furthermore, it appears that the sites at which unknown states arecaptured as well as frequency of their occurrence may play a role inthis variation. For example, it has been observed that X states populatethe majority of scan chains in designs C2, C7, and C8 in a uniformmanner across all test patterns. On the other hand, there are only a fewscan chains with high concentration of X states in design C5. In thiscase, the majority of scans had low X-fill rates or did not featureunknown states at all. As a result, design C5 with X's confined to asmall fraction of scan cells (1.41%) required 3% to 16% more patterns torecover the full coverage. Though designs C2 and C8 featured three timesfewer X's, the corresponding increase in pattern count ranged between40% and 80%.

Design C7 illustrates a “worst case” scenario where many unknown states(the highest percentage among the reported circuits) formedhard-to-handle clusters. In this particular case, the pattern countincrease remained below 111%. The impact of X states can be morepronounced if one compares the highest (highlighted) achieved compactionratios C against quantity s·v, (the ideal compaction in the absence ofX's and in the absence of control data). Table 3 reports such acompaction efficiency as 100 C/sv (in the first column). As can be seen,the compaction efficiency decreases with the increasing value of theoverdrive factor (and compaction), which indicates that the control databecomes a component to consider once the high compaction ratios areconcerned. TABLE 3 Compression efficiency of circuits used for obtainingexperimental results. Overdrive X's (%) Design 1 2 3 6 6 8 12 16 0.001C6 98 97 95 93 89 84 76 67 0.003 C3 96 92 89 85 78 72 60 49 0.04 C4 8069 64 61 52 47 37 30 0.04 C1 81 69 59 58 48 43 32 25 0.44 C8 70 67 64 6257 53 46 39 0.44 C2 62 58 54 52 47 42 35 28 0.83 C9 87 84 81 80 77 74 7269 1.41 C5 81 73 66 59 48 40 28 20 2.62 C7 56 51 46 43 38 33 31 24

The experimental results also show another trade-off. In at least somecases, relatively large mask registers are needed to gain the maximumcompaction for small overdrive factors, especially if the X-fill rate ishigh (C7, C8). As the compaction increases with the increasing value ofv, however, the amount of control data becomes a factor forconsideration. Thus, to achieve a high degree of compaction, smallerregisters can be used even though the pattern count may not be as low asit would otherwise.

Exemplary Embodiments of Selector Circuitry and Selector CircuitrySynthesis

In this section, additional exemplary embodiments of scan chainselection logic and methods for creating such scan chain selection logicare described. The disclosed apparatus and methods can be used witheither or both of the stages in the multi-stage compactor embodimentsdescribed above. The described methods and apparatus can also be used inconnection with a single-stage compactor (for example, a single XOR orXNOR tree) or other space compactor. For instance, the followingdiscussion generally describes the exemplary apparatus and methods inconnection with a single-stage compactor, though the disclosedprinciples are readily applicable to multi-stage architectures.

Some embodiments of the disclosed technology can act as flexible X statecontrol logic for test response compactors. Embodiments of the disclosedtechnology can provide good observability of scan errors, even for testresponses having a large percentage of X states. Embodiments of thedisclosed selection logic can also be efficient in terms of silicon areaand the amount of information required to control them. Embodiments ofthe disclosed circuitry can also be employed to selectively gate scanchains for diagnostic purposes.

As noted above, FIG. 1 shows an exemplary embodiment of the selectorcircuit 140 comprising selection logic 146 and a mask register 148. Theselection logic 146 can be a linear logic circuit configured to provideinputs to at least some of the first and second groups of logic gates142, 144. In some embodiments, one or more of the logic gates are ANDgates, and in further embodiments one or more other types of logic gatescan also be used (for example, OR, NOR, NAND, as well as other types).The inputs provided to the logic gates can be as follows: a “0” can beprovided to block values from a scan chain or a compressed output in anoverdrive register (for example, to suppress unknown states or todisable scan chains for other reasons such as fault diagnosis andsilicon debugging); a “1” can be provided to pass uncompressed testresponse bits from a scan chain or compressed test response bits from anoverdrive register (for example, to pass the values into a compactor, asthey may carry test response bits containing errors captured in scancells of the scan chains); and a “don't-care” value can be provided toindicate that scan chains or overdrive register locations have contentthat is not regarded as critical (for example, the logic gates canreceive either a 1 or a 0 as gating signals).

In some embodiments, a mask bit or masking instruction bit for each orsubstantially each logic gate in a selector circuit (for example, forone or two stages of compactors) is provided to the selector circuit.This can provide total or near-total control over which test responsebits are masked. However, in some embodiments, particularly those with arelatively large number of logic gates, this approach can be impracticaland can significantly increase the test circuit architecture overhead.Additionally, the amount of control data can significantly lower thecompression ratio of the architecture.

In particular embodiments, the selection logic 146 comprises acombinational circuit configured to provide masking signals to one ormore of the logic gates according to a set of mask bits. Thecombinational circuit can be defined at least in part in terms ofselector polynomials indicating how particular mask bits (stored, insome embodiments in the mask register 148, which can comprise one ormore stages) are connected to the outputs of the selection logic 146. Incertain desirable embodiments, the selection logic 146 can be designedas an m-input, n-output linear mapping circuit, where m is the number ofmask bits, n is the number of scan chains (or the number of cells in theoverdrive register 150), and m<<n. An output can then be obtained byXOR-ing a given number F of inputs. One embodiment of such a circuit1600 is shown in FIG. 16 for m=6, n=12, and F=3. The inputs 1610 appearon the left-hand side of the figure, while the outputs 1620 appear alongthe bottom of the figure. In further embodiments, the circuit 1400 cancomprise two portions, for example, m-input, n-output and r-input,v-output linear mapping circuits, respectively, where m+r is the totalnumber of mask bits, n is again the number of scan chains, and v is thesize of the overdrive register.

In some embodiments, v is small relative to the number n of scan chains.This can allow for use of a small number of mask bits controlling thesecond stage, thereby reducing that portion of the selection logic to av-bit register which only stores the masking signals. In such cases,there is ordinarily no need to implement separate encoding logic.

Embodiments of exemplary methods for synthesizing a circuit such as thecircuit 1600 are described below. In some of the disclosed embodiments,synthesis of the selection logic can be primarily aimed at achievinghigh encoding efficiency, which is defined as a ratio of successfullyencoded pre-specified gating signals to the number m of mask bits. Thisobjective can be important, as a failure to encode a single gatingsignal may result in a significant coverage drop by having an entirescan chain be unobservable. (However, in some embodiments adequateresults can still be obtained even if a system does not provide absolutecontrol over which test results are masked.) This is in contrast to testpattern compression, where missing one specified bit typically does notjeopardize the quality of a test to any great extent. Since encodingefficiency is directly related to the probability of linear dependencyamong selector polynomials, the task of designing a desirable selectorcan be guided by data indicating the probability that some of a firstset of polynomials and some possible “candidate” polynomials will formone or more linearly dependent sets. Using this information, andaccording to one exemplary embodiment, synthesis can be carried out ntimes by means of a selection procedure as described below.

FIG. 17 shows one embodiment of a method 1700 for generating controllogic for a selection circuit. In method act 1710 a first candidatepolynomial is generated. In some embodiments, the first polynomial isgenerated randomly, but in further embodiments alternative methods canbe used.

In method act 1720, the generated polynomial is evaluated to determinewhether it meets a dependency threshold relative to polynomials in asolution set. In some embodiments, the solution set can initially begenerated randomly, while in further embodiments it can be generated ina lexicographic order. For example, the candidate can be examined toverify that it shares no more than a given or fixed number of mask bitswith some or all polynomials in the solution set. If the candidatepolynomial shares more than the given number (for example, apredetermined number, which can be user-selectable), then the candidatepolynomial is discarded and a new polynomial generated. This can beuseful for reducing linear dependency among polynomials of the solutionset.

In method act 1730, the candidate polynomial is grouped into anm-element set with accepted polynomials from the solution set (this setis sometimes referred to as the “test set”). The solution setpolynomials for this method act can be chosen randomly from the solutionset. The rank of this m-element set can be determined (for example,using Gaussian elimination to determine the reduced row-echelon form ofthe m-element set). This can be repeated with the candidate polynomialgrouped into a plurality of different m-element sets using differentsolution set polynomials. In particular embodiments, an average rank canbe computed for the candidate polynomial.

In method act 1735, the above method acts are repeated for multipleadditional candidate polynomials to create a set of candidatepolynomials (for example, each an average rank). The number of candidatepolynomials in the set can be any number.

In method act 1740 one or more polynomials from the set of candidatepolynomials are selected for inclusion in the solution set. In someembodiments, a candidate polynomial having a high or the highest averageranks is selected. In some embodiments, method acts 1710, 1720 and 1730can be performed with multiple polynomials at a time, rather than with asingle polynomial.

In method act 1750, a description of the solution set is stored in oneor more computer-readable media or displayed (for example, on a computerscreen). In some embodiments, and at method act 1760, a selection logiccircuit is synthesized according to the solution set. Method 1700 can beused to generate control circuitry for applications besides thosedisclosed herein (for example, it can be used to generate controlcircuitry in general).

Data (in some embodiments, compressed data) used to control a selectorcircuit can be delivered to the circuit in a number of ways. In someembodiments, if the selector circuit is integrated with an embeddeddeterministic test environment, for example, the data can be uploadedthrough a test data decompressor. For instance, the data can be regardedas additional specified bits and become the subject of an encodingprocess in a manner similar to that of actual test cubes. This approach,however, can create a feedback loop in the test pattern generationprocess. For instance, once generated, a test cube can be subsequentlycompressed and decompressed to obtain a random fill used by a faultsimulator to help identify detected faults. At this point, mask bits canbe uniquely determined. If they are to become part of the compressedstimuli, however, then the whole process of compression, decompression,and fault simulation typically has to be repeated. As a result, therandom fill changes, and the masking signals already assigned can beless effective than previously determined. Furthermore, adding newspecified bits to the stimuli may cause the encoding process to fail. Atypical ATPG engine produces test patterns incrementally by graduallyadding new target faults. In this scheme, one usually has to decidewhether to perform compression, decompression, and fault simulationafter adding every fault to the pattern or to work with the final testpattern and remove some faults if mask bits cause the pattern to failcompression. The latter approach could also result in multiplecomputationally intensive compressions, decompressions, and faultsimulations for each pattern.

In some embodiments mask bits can also be specified at some point of theATPG process before the final test pattern is generated. Even then,however, the sites of X states are typically unknown until random fillis performed. Assigning mask bits can again result in decompression andfault simulation, and the issue of mutual dependency between teststimuli and mask bits would remain.

In other embodiments, one or more extra channels (or input paths) can beused to drive the selector register directly. This can allow forspecification of mask bits independently of the stimuli loaded into thescan chains. The stimuli in this approach do not necessarily depend onthe selector mask bits. This approach can be used, for example, when thesize of the longest scan chain does not significantly exceed the totalsize of the selector register for the one or more extra channels. Insuch a case, input taps for the selector registers are desirablyinserted between channel input pin(s) and the decompressor. Additionalshift cycles can then be used rather than extra input pins to deliverthe masking data. The use of a single input channel decompressor is alsopossible.

In some embodiments, test pattern data is provided to a circuit (forexample, a decompressor) on one or more channels during a firstinterval, and masking instructions are provided to a selector logiccircuit on one or more of the selector channels during a secondinterval. This can allow a circuit to “share” one or more channels amongtest pattern data and masking instructions. Such a configuration can beimplemented using, for example, components 160, 162 of FIG. 1. Inparticular embodiments, the first interval precedes the second interval,while in further embodiments the second interval precedes the firstinterval. In additional embodiments, the first and second intervals canbe comprised of sub-intervals at least partially interspersed among oneanother.

Exemplary experimental results of method 1700 are presented in Table 4below. Table 4 gives the probability of linear independence for twoexemplary selection logic circuits (m=32 or m=34, F=3) driving logicgates for n=128 scan chains. The number of specified gating signalsranges from 16 to 32. For comparison, also included are the resultsreported in I. Bayraktaroglu and A. Orailoglu, “Test volume andapplication time reduction through scan chain concealment,” Proc. DAC,pp. 151-155, 2001 (“Ref. 1”), for purely random linear stimulidecompressors. The improvement, with respect to probability of lineardependence, realized by the approach of method 1700 over the scheme usedin Ref. 1 is shown in the table. For instance, given a likelihood oflinear independence, embodiments of selection logic circuits createdaccording to method 1700 are capable of encoding approximately four morespecified bits than the circuitry of Ref. 1 for the same values of m andn. Also, with the increasing number of specified bits, the probabilityof linear independence remains much higher once the number of specifiedbits becomes close to the number of mask bits. TABLE 4 Probability oflinear independence (%). Spec. Mask register size (m) bits 32 34 32(Ref. 1) 34 (Ref. 1) 16 99.74 99.85 98.87 99.50 18 99.53 99.77 97.8098.68 20 98.82 99.51 96.17 97.42 22 97.75 98.85 91.39 94.05 24 95.3497.46 77.99 84.79 26 89.37 94.77 54.69 67.22 28 75.47 88.32 26.71 40.2430 46.70 73.73 7.09 16.48 32 9.34 45.10 0.68 4.48

Below are results of experiments measuring the encoding efficiency ofembodiments of selection logic circuits created according to methodsdescribed above. Given values of m, n and F, each experiment wasexecuted according to a method comprised of a number of successivestages. In a stage k, it was determined (by solving the correspondinglinear equations) whether k specified bits (masking signals) could beencoded in the logic circuit. The specified bits subjected to encodingin act k were obtained by adding a new specified bit to those bits thathad already been used in stage k−1. As these experiments werecharacterization experiments, the new specified bit was set randomly interms of an output selected in a logic circuit and the value requestedfrom the circuit. The process continued until the first failure. In sucha case, the number of bits that were encoded (those used in the previousmethod act) was recorded by incrementing a corresponding entry of ahistogram. Subsequently, a new combination of gating bits became thesubject of encoding.

Table 5 shows results for F=3 and 5. Data in Table 5 assume a formE_(s), where s indicates in each case how many stages of the maskregister are shared (at most) by any pair of the selector polynomials.Each entry of the table corresponds to the average number of scan chainswhose gating signals can be encoded. As an example, consider a 64-outputselector using trinomials (F=3) and a 32-bit mask register. Theresultant encoding efficiency is equal to 98.23%. In other words, thislogic is able to encode, on the average, 32×0.9823=31.43 gating signals(scan chains). The ability to control such a large fraction of outputscan be advantageous given the fact that only a small percentage of scanchains usually contain a vast majority of unknown (X) states. Althoughthe encoding efficiency slightly decreases with the increasing number ofscan chains, in all examined cases it remained well above a 90%threshold. At the same time, the encoding efficiency increased with theincreasing value of F. This indicates a trade-off between the hardwarecost of the selector and its performance. TABLE 5 The average encodingefficiency (%). F = 3 Number of outputs m 64 128 192 256 12 99.27₂98.85₂ 98.31₂ — 16 98.05₂ 96.69₂ 95.99₂ 96.28₂ 24 97.70₁ 95.50₂ 94.61₂94.42₂ 32 98.23₁ 95.97₁ 94.17₁ 94.17 40 98.59₁ 96.02₁ 95.22₁ 93.96₂ 4899.21₁ 96.54₁ 95.38₁ 94.84₁ 56 99.41₁ 96.90₁ 95.42₁ 94.92₁ F = 5 Numberof outputs m 64 128 192 256 12 100.68₄ 100.68₄ 100.50₄ 100.17₄ 16100.30₃ 100.11₃ 99.64₃ 99.89₄ 24 99.91₂ 99.88₃ 99.58₃ 99.52₃ 32 99.90₂99.67₂ 99.62₂ 99.65₂ 40 100.02₂ 99.65₂ 99.61₂ 99.66₂ 48 99.99₁ 99.88₂99.59₃ 99.65₂ 56 100.05₁ 99.71₂ 99.56₂ 99.59₂

This observation can be used to design a selection logic circuit withfurther enhanced performance, while the hardware cost remains the sameas that of circuits with F=3. An exemplary embodiment of such a designis shown in FIG. 18 as a circuit 1800 with inputs 1810 and outputs 1820.In the exemplary architecture, certain trinomials were replaced withtheir 5-term counterparts (pentanomials) in such a way that the latteritems are formed by re-using, in each case, two 2-input XOR gates (saya⊕b and c⊕d) already used to implement some trinomials. In someembodiments, a pentanomial can then be formed by using only two 2-inputXOR gates as follows: (a⊕b)⊕(c⊕d)⊕e, where e is the fifth term of anewly created polynomial. For example, in circuit 1800 outputs 1, 4, 7and 10 are outputs implementing pentanomials.

In certain embodiments, synthesis of a selection logic circuit caninclude Stinson's hill climbing procedure to refine a circuit obtainedusing method 1700. When the exemplary method 1700 is completed, in someembodiments an associated average rank can be determined for one or moreselector trinomials. One or more trinomials having lower or the lowestranks can be replaced with one or more pentanomials created based ontrinomials with higher ranks. In further embodiments, several candidatepentanomials can be formed, and the ones with the highest ranks can beadded to the solution set. Generally, the number of pentanomials addedto the solution set cannot exceed n/3.

Table 7 illustrates one set of experimental results examiningperformance of a selection logic circuit where F is equal to 3 for somepolynomials and equal to 5 for others. Other parameters are the same asthose used to generate the results of Table 5. Table 6 uses the samenotation as Table 5. TABLE 6 The average encoding efficiency for F =3and 5. Number of outputs m 64 128 192 256 12 100.62₂ 100.04₂ 99.95₂ — 1699.49₂ 98.39₂ 98.34₂ 98.19₂ 24 99.09₁ 98.06₂ 97.60₂ 97.69₂ 32 99.42₁98.30₁ 97.59₂ 97.38₂ 40 99.59₁ 98.36₁ 97.90₁ 97.57₂ 48 99.89₁ 98.68₁98.06₁ 97.78₁ 56 100.25₁ 98.73₁ 98.07₁ 97.77₁

Exemplary embodiments of applying the scan chain selection logic in asingle-stage compaction scheme were further tested on several industrialdesigns. For each tested design, only a single scan cell was chosen as aprimary fault propagation site. Hence, application of method 1700 wasable to better enable a uniform handling of faults, especially thosewith a small number of propagation sites which might otherwise beblocked. Indeed, as shown below, embodiments of the exemplary selectionalgorithm can often handle such masking decisions, as faults with alarge number of observation points would play a dominant role. In thetest circuit architecture used for generating the following experimentalresults, a single-output XOR tree was used as a combinational testresponse compactor. A mask register in a selector circuit was loadedonce per pattern. Such an approach required providing a negligibleamount of additional data for masking signals, and thus it did notsignificantly compromise the compression ratio. It also prevented timingclosure violations. With this masking scenario, X states can hinderobservability of certain errors in a twofold manner. If a given X stateis not suppressed, then it can be difficult to observe errors capturedat the same scan-out cycle and arriving from scan chains the X state isXOR-ed with. On the other hand, blocking an X state typically hides allerrors occurring in the same scan chain.

In the results below, an increase-in-pattern-count figure was employedas a figure of merit to assess performance of the scheme. Indeed, whenoriginal test patterns are applied, several test escapes can be observeddue to X states and the use of selection logic. Hence, one typicallyshould apply a number of top-up patterns until complete fault coverageis restored.

The experimental results reported below were produced using theexemplary method 1900 illustrated in FIG. 19. Method 1900 issubstantially similar to the method shown in FIG. 12, except that theact of transforming scan chains into compound scan chains can be omittedwhen considering single-stage compaction schemes. Method 1900 can beused with both single- and multi-stage compactor architectures. Theexemplary method 1900 assumes that the locations of failing scan cellsand one or more unknown states for each test pattern are given.

In method act 1910, for each scan chain, two coefficients S_(i) andM_(i) are determined, where S_(i) represents the estimated number oferrors that will be preserved provided scan chain i is selected, whileM_(i) is a similar number for scan chain i if it were masked. E(i) andX(i) represent the sets of scan cells in scan chain i that captureerrors and unknown states, respectively. E_(c) and X_(c) represent thenumber of errors and X states, respectively, captured by scan cellsbelonging to scan-out cycle c. Coefficients S_(i) and M_(i) are given inequations 4 and 5, respectively: $\begin{matrix}{S_{i} = {{\sum\limits_{c \in {E{(i)}}}\quad 2^{- X_{c}}} - {\sum\limits_{c \in {X{(i)}}}\quad{E_{c}\text{/}X_{c}}}}} & (4) \\{M_{i} = {{\sum\limits_{c \in {X{(i)}}}{E_{c}2^{- {({X_{c} - 1})}}}}\quad - {\sum\limits_{c \in {E{(i)}}}\quad\left( {X_{c} + 1} \right)^{- 1}}}} & (5)\end{matrix}$

In this exemplary approach, S_(i) is calculated as a difference betweenthe number of errors occurring in a given scan chain and the number oferrors occurring in the same time frames as those of X states hosted bya given scan chain. In the depicted embodiment, the first term ofequation 4 is calibrated, for example, by the probability that X statesoccurring in the same time frames will all be masked (it is assumed thata single scan chain is masked with a probability 0.5). The second termof equation 4 is calibrated by the number of corresponding X states toavoid double counting. In this exemplary approach, M_(i) is equal to thenumber of errors occurring in the same time frames as those of X states(now suppressed) hosted by a given scan chain. This assumes, however,that they are not masked by other unknown states from the same shiftcycles. This number can be reduced by errors occurring in the maskedscan chain (calibrated, for example, by X's from other scan chains, andincluding the masked chain itself).

In method act 1920, the coefficients S_(i) and M_(i) for scan chain iare compared, and, at method act 1930, scan chain i is marked with amasking signal value of 1 (select) or 0 (mask) depending on whetherS_(i) or M_(i) was chosen. In some embodiments, this is not a finalmasking, as these signals still need to be encoded for a particularselection circuit.

In method act 1940, based on the results of method act 1930, thecontents of one or more scan chains (in some embodiments, all scanchains) are updated by either deleting errors and X states in a scanchain which is supposed to be masked, or by deleting errors and X statesin time frames where a selected scan chain features an unknown state. Inthe illustrated embodiment, masking signals are iteratively assigned toone or more other scan chains by repeating the above method acts, asindicated by arrow 1932.

In method act 1950, linear equations are solved (for example, in theorder determined in method act 1920) to confirm that the masking signalscan be encoded in the selection logic for successive scan chains. Theselinear equations describe relationships between inputs and outputs ofthe selection logic. In some embodiments, this process continues untilthe first encoding failure occurs

In method act 1960, the values of all masking signals that were not thesubject of encoding are determined (for example, by examining theselection logic), and the resultant fault coverage is determined.Detected faults can be dropped, and the number of test patterns can bestored that were effectively used to achieve determined fault coverage.

As indicated by method act 1970, method 1900 is repeated for purposes ofthese experiments until the desired number of target faults is detected.

Experimental results appear in Tables 7 and 8. For each tested circuitthe following information is provided: the name (where label -dkindicates the use of depth-k sequential patterns in conjunction with thecircuit); the scan architecture and the total number of faults; thetotal number of error bits (the number of scan cells that captureerroneous signals); the X-fill rate computed as a ratio of the totalnumber of captured X states to the number of scan cells multiplied bythe number of test patterns; the number of patterns which contribute tothe fault coverage (FC), assuming there is no compaction; the size m ofthe mask register; top-up patterns, reported here as an absolute andrelative IPC; and the effective compaction ratio C(x). Since asingle-output compactor was used in the experiments, the compactionratio is given as the number of scan chains, normalized by the ratio oforiginal test patterns to the total number of patterns effectivelyapplied (including top-up vectors and selector mask bits). TABLE 7Experimental results - 1. m IPC IPC (%) C(x) Circuit C1-d0 8 922 16318.62 Scan 50 × 373 12 806 142 19.98 Faults 471362 16 699 123 21.45Errors 272472 24 596 105 22.88 X's (%) 1.56 32 568 100 22.98 Tests 56650 578 102 21.81 FC (%) 98.10 Circuit C1-d2 8 892 252 13.91 Scan 50 ×373 12 654 185 17.01 Faults 471362 16 542 153 18.94 Errors 276906 24 425120 21.35 X's (%) 2.62 32 397 112 21.71 Tests 354 50 378 107 21.32 FC(%) 98.93 Circuit C1-d3 8 909 311 11.90 Scan 50 × 373 12 645 221 15.10Faults 471362 16 512 175 17.41 Errors 313775 24 405 139 19.68 X's (%)3.45 32 355 122 20.78 Tests 292 50 338 116 20.44 FC (%) 98.98 CircuitC2-d3 7 98 12.8 13.46 Scan 16 × 112 8 82 10.7 13.49 Faults 81540 12 7910.3 13.10 Errors 27634 14 75 9.8 12.95 X's (%) 2.60 16 71 9.3 12.81Tests 765 18 68 8.9 12.66 FC (%) 87.42 Circuit C3.1-d2 12 516 24 99.61Scan 128 × 353 16 440 21 101.45 Faults 1147100 24 341 16 103.29 Errors1458974 32 294 14 103.10 X's (%) 0.04 64 275 13 95.94 Tests 2126 128 27513 83.18 FC (%) 98.83 Circuit C3.2-d2 13 535 25 122.25 Scan 160 × 283 16425 20 126.24 Faults 1147164 24 296 14 129.49 Errors 1499807 32 256 12128.32 X's (%) 0.04 80 226 11 112.77 Tests 2129 160 211 10 93.00 FC (%)98.83

TABLE 8 Experimental results - 2. m IPC IPC (%) C(x) Circuit C4-d0 112623 133 33.34 Scan 80 × 357 12 2575 130 33.60 Faults 677010 16 2161 10936.56 Errors 476949 24 1240 63 46.05 X's (%) 4.94 32 994 50 48.84 Tests1975 48 972 49 47.26 FC (%) 88.75 80 907 46 44.79 Circuit C5.1-d2 11 81163 48.68 Scan 80 × 1081 12 750 58 50.09 Faults 2558220 16 727 56 50.48Errors 2381823 24 657 51 51.91 X's (%) 0.44 32 639 49 52.01 Tests 129448 591 46 52.58 FC (%) 98.91 80 640 49 49.84 Circuit C5.2-d2 13 1260 9679.58 Scan 160 × 541 16 1061 81 85.80 Faults 2558380 24 865 66 92.22Errors 2432380 32 805 62 93.51 X's (%) 0.44 40 748 57 94.78 Tests 130880 744 57 88.85 FC (%) 98.91 160 691 53 80.80 Circuit C6.1-d0 11 21 0.2278.90 Scan 80 × 940 12 22 0.23 78.81 Faults 1836531 16 16 0.17 78.53Errors 1681671 24 15 0.16 77.88 X's (%) 0.001 32 17 0.18 77.23 Tests9436 48 17 0.18 75.98 FC (%) 96.51 80 15 0.16 73.61 Circuit C6.2-d0 13112 1.19 153.87 Scan 160 × 470 16 111 1.18 152.93 Faults 1836691 24 1111.18 150.46 Errors 476949 32 65 0.69 148.78 X's (%) 0.001 80 40 0.42136.15 Tests 9435 160 39 0.41 118.87 FC (%) 96.51 Circuit C7-d0 12 908.4 99.29 Scan 122 × 138 16 60 5.6 99.74 Faults 279175 24 26 2.4 99.21Errors 227449 32 12 1.1 96.37 X's (%) 0.60 64 7 0.7 82.71 Tests 1076 12211 1.0 64.47 FC (%) 98.86 Circuit C7-d2 12 118 13.0 99.29 Scan 122 × 13816 87 9.6 99.74 Faults 279175 24 43 4.8 99.21 Errors 305343 32 25 2.896.37 X's (%) 1.05 64 7 0.77 82.71 Tests 905 122 4 0.44 64.47 FC (%)98.85

Circuits reported in Tables 7 and 8 featured a wide range of X-fillrates, from 0.001% (C6) to approximately 5% (C4). Consequently, theresultant increase in a pattern count varied from less than about 1% forcircuits with a low X-fill rate (for example, C6) up to as much as about300% for designs that saw a high percentage of X's (for example, C1 andC4). Furthermore, it appears that sites at which unknown states arecaptured, as well as frequency of their occurrence, can be of increasedinterest. It has been observed, for instance, that X states populate themajority of scan chains in design C1-d3 in a uniform manner across alltest patterns. Contrary to this phenomenon, there are only a fewpatterns with high concentrations of X states in design C4-d0. In thiscase, the majority of patterns had low X-fill rates or did not featureunknown states. As a result, design C1-d3 with depth-3 sequentialpatterns and an 8-bit selector (which gives, on the average, fullcontrollability of 16% of scan chains) used four times more testpatterns than if a similar circuit had been used in a no-compactionmode. On the other hand, circuit C4-d0 used 1.3 times more testpatterns, despite a higher X-fill rate than that of design C1-d3. (Inthe case of circuit C4-d0, as 12-bit selector circuit provided similarscan chain controllability.)

The experiments that produced the results of Tables 7 and 8 were runusing several values of m, starting from the smallest value for a givenscan chain configuration. For all circuits, the best observed compactionwas achieved for m being roughly 10-20% of the number of scan chains.Possible gains due to larger registers were diminished because of themask bits. Circuits with low X-fill rates (C6.1-7d0, C6.2-d0) achievedthe best observed results for the smallest register determined by thescan chain configuration.

Exemplary Embodiments of On-Chip Comparators and Response Collectors

In some embodiments of scan-based manufacturing tests, the testresponses of a circuit-under-test (CUT) are sent to an external tester(for example, ATE) for comparison with the known good responses toisolate a fault in the CUT. Usually, each bit of a test response maps to2 bits on the ATE to accommodate three logic values: 0, 1, and X.Although this has been a standard approach for manufacturing testing andfor gathering failure information, it can have limitations. For example,when scan data is being unloaded and compared on the ATE and a mismatchoccurs, the entire test cycle (for example, the entire scan chain slice)is often captured and stored in the tester memory. The memorylimitations in a tester usually provide storage (a “fail log”) for amaximum of only 256 failing cycles. Therefore, the fail logs are oftentruncated and many failing test patterns are not logged. Also, theunloading of data from the CUT to the ATE and comparing the response todetermine if a failure occurred can take considerable amounts of time.This can increase the test application time, thereby reducing thethroughput on the test floor. To improve test throughput, multi-sitetesting has gained popularity in the industry. This usually involvestesting multiple devices (in some cases as many as 64 or 128)concurrently on a tester. With current ATE technology, this creates abottleneck for at least two reasons: the number of chains devoted forobservation per device becomes limited, and the amount of data storedper device is further limited as the ATE memory is shared acrossmultiple devices.

To address at least some of these issues, embodiments of an on-chipcomparison and response collection scheme as described below can beused. Instead of performing a comparison on the ATE, for example,additional hardware can be incorporated on-chip to facilitate comparisonof expected and actual test responses. Furthermore, by utilizing someexisting memory on-chip, it is possible to store a larger amount offailing data that could help facilitate diagnosis. In some embodiments,the known good responses are still stored in the ATE memory.

FIG. 20 shows a block diagram of one embodiment of an exemplary on-chiptesting circuit compactor architecture 2000. The depicted embodimentcomprises a plurality of scan chain groups, such as group 2010(consisting of scan chains 1-12), coupled to compactors such ascompactor 2020. In the illustrated architecture, a component 2012 canprovide to the architecture 2000 one or more bits of information perchannel (for example, per compactor). In some embodiments, the component2012 can be one or more of, for example, an ATE, an on-chip memory or anon-chip decompressor. These bits can be provided on input paths 2030,2032. For example, the first set of bits provided on input paths 2030can be the actual test response bits expected from the device providedfor comparison with the output of the compactors. The first set of bitsis provided to comparators 2034 which, in the embodiment of FIG. 20,comprise XOR gates.

In some embodiments, a second set of bits (also termed the “masksignals”) can be provided on input paths 2032 and used to indicatewhether the output of the comparator 2034 should be masked (for example,using AND gates 2040 or other suitable logic gates). The mask bit for agiven compactor can be set to mask the comparator output when theexpected response is an X state, and therefore, the result of thecomparator ignored.

In certain embodiments, the expected test response bits provided oninput paths 2030 are input simultaneously with the mask signals providedon the input paths 2032. As used in the description and the claims, theterm “simultaneously” allows for some minor deviation so long as theintended operation of the circuit is not compromised. For example, insome embodiments, deviations up to almost one clock cycle can betolerated.

In further embodiments, an error vector can be determined for everycycle of the test response. The error vector (assuming n channels) canbe directly fed as input to a priority encoder 2050, which can encode itinto a log₂n-bit vector. In additional embodiments, the priority encoder2050 can comprise logic to indicate if an error is observed at more thanone channel output in a cycle, and set a bit on an output (not shown)accordingly. In additional embodiments the architecture 2000 comprises apattern counter 2060 and a shift counter 2062 to track the pattern andthe cycle numbers at which errors have been observed. A memory 2070 canrecord data from other components (for example, the priority encoder2050, the pattern counter 2060, and/or the shift counter 2062).Additional logic 2072 can be used to manage inputs to the memory 2070.Components such as the pattern counter 2060, the shift counter 2062 andthe additional logic 2072 can operate in response to clock and controlsignals, as shown in FIG. 20.

FIG. 21 shows a block diagram of one embodiment of a priority encoder2100 that can be used with the testing circuit architecture 2000

Assuming m patterns are applied during a test, and assuming the maximumlength of a scan chain is 1 bits, the total number of bits (T) that arerecorded per failing cycle according to one exemplary implementation ofthe disclosed technology is:T=log₂ n+log₂ m+log₂ l+1  (6)

The final term in equation 6 (representing an additional output cycle)corresponds to the output bit which can indicate whether there is morethan a single error at the input of the priority encoder 2050.Considering, for example, a design with 64 channels, 10,000 patterns,the longest scan chain having a length of 400 bits, a total of 30 bitscan be recorded according to this implementation. If the memory 2070 isa 1Kx32 memory, for example, it can store up to 1024 failing cycles,assuming a single error across all channels. If there are a maximum of 2errors across all channels in a single cycle, up to 512 failing cyclescan be stored in the worst case. The storage memory can either be addedand configured to function as a collector of failing pattern informationor an existing memory in the device can be re-used for storing thefailure information. Depending on the memory size and how many errorbits are recorded per cycle, diagnostic resolution can vary.

FIG. 22 shows a block diagram of a further embodiment of an exemplaryon-chip comparison and response collection architecture 2200. In thisembodiment, a multiple-input signature register (MISR) 2202 can also beused to collect circuit responses from one or more compactors (such ascompactor 2220) that compact outputs from scan chain groups, such asgroup 2210. The MISR 2202 can generate a MISR signature that can bestored in a memory 2270 for one or more failing patterns, along with thecontent of a pattern counter 2260. The architecture 2200 can comprisecomparators and AND gates (such as comparator 2234 and AND gate 2240),which can be controlled by inputs from an ATE, similar to thearchitecture 2100. In additional embodiments, a write-enable circuit2272 can be configured to coordinate writes to the memory 2270 with oneor more signals from the AND gates and a “pattern end” signal 2274 fromthe ATE.

FIG. 23 shows a block diagram of an additional embodiment of anexemplary comparison and response collection architecture 2300. In thisembodiment, an error signature (produced by a MISR 2302) is stored in amemory 2370 for most failing patterns or every failing pattern.Additionally, the content of a pattern counter 2360 and the number offailing bits (determined, for example, by an error adder 2362) can alsobe stored for one or more test patterns producing an error. In furtherembodiments, two additional sets of data can be available after the testset is applied: failing cycles and failing scan chains (or groups ofscan chains) gathered by a vertical collector 2364 and a horizontalcollector 2366, respectively. FIG. 24 shows a block diagram of oneembodiment of a vertical collector circuit 2364, while FIG. 25 shows ablock diagram of one embodiment of a horizontal collector circuit 2366.

The on-chip testing architectures described above can be used incombination with any other technologies described herein (for example,X-Press compactors, control circuit synthesis).

In experiments, the on-chip testing architecture 2100 was used with twoindustrial circuits (namely, designs A and B) across 26,000 and 10,000real fail logs, respectively, from the manufacturing floor. Thediagnostic resolution of embodiments of the compactor described hereinwas similar to the selective compactor described in, for example, U.S.Pat. Nos. 6,557,129 and 6,829,740. Generally, so long as storing thefailing cycles on chip does not result in a substantial loss ofinformation, the diagnostic resolution can be preserved.

In the experiments, design A was configured with 32 scan chains, asingle channel for external data output, with a maximum scan chainlength of 4000 bits. An overdrive register of 8 bits was selected totarget an effective compression of 256×. It was observed that for 88% ofthe fail logs (out of a total of 26,000), the diagnostic resolutionremained the same, with the testing architecture 1900 recording a singleerror per fail cycle. Across all 26,000 fail logs, there were only 2.7%of the failing patterns with a few errors masked, although many of thosemay not affect diagnostic resolution. Design B was configured with 32chains, single channel, with a maximum scan chain length of 14000.Overdrive registers of 8, 16 and 32 bits were selected, targetingeffective compressions of 256×, 512×, and 1024× respectively. Ananalysis of 10,000 fail logs showed that for 87.5% (256×), 87% (512×),and 86.4% (1024×) of the cases, the diagnostic resolution remained thesame by recording a single error bit in a fail cycle across allpatterns. Similarly, based on the size of the overdrive register, only1.6%, 2.4%, and 3.1% of the failing patterns had a few errors masked.

Impacts on Fault Diagnosis

Generally, to enable high-volume monitoring of a diagnosis flow, adiagnostic tool desirably supports analysis in a compression mode. Afault diagnosis technique that can be employed for various test responsecompactors is described in U.S. Patent Application Publication2005/0222816, which is incorporated herein by reference. When thistechnique is applied to data produced by exemplary embodiments of theX-Press compactor disclosed herein a bit P_(i) of a compacted responsecan be expressed as a function of a set of values that are captured intoscan cells before compaction. This so-called “transformation function,”denoted Φ_(i), is such that P_(i)=Φ_(i)(C_(i)), where C_(i) are thevalues of the set of scan cells that are compacted together to obtainP_(i). Since both Φ_(i) and C_(i) can be determined by a compactorarchitecture and a masking condition of each pattern, Φ_(i) can bedefined as addition modulo 2, while C_(i) can be defined as the set ofscan cells that are located in the same shift-out cycle in the group ofcompound scan chains (see FIG. 3) connected through selection logic to ascan output channel. In this section, scan cells in a compound scanchain are referred to as “compound scan cells.” Recall that the value ofeach compound scan cell is obtained by XOR-ing v compressed scan cells(for example, from a first stage of compaction). Furthermore, maskedscan cells have values of 0.

According to one exemplary embodiment of X-Press-compactor-baseddiagnosis, observed faulty responses are expressed in terms of one ormore candidate logic cones (LC). To obtain such a relation, a conceptualcircuit transformation can be performed to convert the original designinto a circuit containing pseudo-scan chains, the number of which isequal to the number of X-Press outputs. The number of cells in each ofthe pseudo-scan chains is the number of shift cycles in the originalcircuit divided by v. The pseudo-scan cells are driven by a union oflogic cones that imply their values.

FIG. 26 illustrates a block diagram of a transformed circuit 2600corresponding to an original circuit design with 16 scan cells (and 16logic cones that drive them), two scan chains, and using an exemplarysingle-output X-Press compactor having a 2-bit overdrive register. Thetransformed circuit comprises logic cones LC₀ . . . LC₁₅ and pseudo-scancells 2610, 2611, 2612, 2613. Sums LC₀⊕LC₁, LC₂⊕LC₃, LC₄⊕, . . . ,LC₁₄⊕LC₁₅ correspond to the space compaction performed by the firststage of the X-Press compactor, while the pseudo-scan cells 2610, 2611,2612, 2613 are driven by modulo 2 sums representing space compactors fedby the overdrive registers. In this embodiment, the outputs of anymasked logic cones are excluded from further processing. Four bits areobserved for each test pattern after compaction.

Suppose failures are observed at the pseudo-scan cells 2610 and 2612.Based on the transformed circuit in FIG. 26 and thesingle-location-per-pattern assumption, faulty logic can be determinedto be located in the intersection between the union of logic cones LC₀and LC₃ and the union of logic cones LC₈ and LC₁₁. This reduces thesearch space of possible fault suspects.

Next, fault simulation can be applied to the transformed circuitillustrated in FIG. 26. Fault suspect candidates are injected in thetransformed circuit and simulated. The simulation results are comparedwith data recorded by a tester. A fault can be regarded as a realsuspect if the simulation results match the tester observed failures.

FIG. 27 shows a block diagram of one exemplary method 2700 of performingfault diagnosis of a tested CUT. In method act 2710, a transformationfunction for one or more responses of the X-Press compactor isdetermined. In some embodiments, this comprises determining thetransformation function for each bit produced as a response by thecompactor. In method act 2720, the original CUT is transformed into acircuit representation (a “transformed circuit”) containing one or morepseudo-scan chains. In method act 2730, a failure file generated by ATEis read (generally under the assumption that one or more of thepseudo-scan cells capture test failures). Connections from one or morefailing cells can be mapped into the transformed circuit to locate oneor more logic cones that constitute an initial suspect fault list(method act 2740). Using the transformed circuit, fault simulation canbe performed for one or more suspect faults (method act 2750). In methodact 2760, one or more simulation results can be compared with failuredata from the ATE. Simulation and/or comparison results can be stored inone or more computer-readable media (method act 2770).

In further embodiments, a cause-effect analysis can be used such thatstuck-at, bridge, open, and/or transition defects can be identified.Certain embodiments of the method 2700 can also handle cases withmultiple faulty scan cells in a single shift cycle. Further, certainembodiments of the disclosed technologies can permit diagnosis ofproduction test failures, as it is not necessary to bypass the compactorand apply a different test set for the purpose of diagnosis.

Below are results of experiments performed on CUTs the diagnostictechnology described above. For each CUT design, 1000 randomly selected,single stuck-at faults were injected to create 1000 fail logs forversions of the design, with and without embodiments of the X-Presscompactor. X-Press compactor designs (for example, embodiment 100 ofFIG. 1) with relatively high X-fill rates (for example, if X-fills are acharacteristic of the design), masking registers of size m=12 or 13, andan overdrive factor of v=8 were chosen. Although embodiments of theX-Press compactor typically used some top-up patterns to maintain thesame coverage, in these experiments the original test patterns were usedto carry out the comparison. Generally, identification of differentdefect behaviors can be based mainly on values recorded at fault sites,regardless of compactor type. Therefore, stuck-at faults were used tosimplify the comparison. Diagnostic resolution was used as a figure ofmerit and is defined here as a reciprocal of the number of faultsuspects. For example, if the result (the call out) of the diagnosticprocedure produces only one suspect, the resolution is 100%. If theresult is two suspects, the resolution drops to 50%. Table 9 below showsaverage diagnostic resolutions for some circuit designs used to produceexperimental results described elsewhere in this application. In Table9, the second column lists the average diagnostic resolution withoutcompression, while the next column lists the same resolution using anexemplary embodiment of the X-Press compactor. The last two columnsindicate a difference between two former statistics and the ratio offailing pattern counts with and without the exemplary X-Press compactor.TABLE 9 Average diagnostic resolution Design No comp. (%) X-Press (%)Difference Fail. pat. ratio C1 96.74 95.60 1.14 1.5145 C2 96.04 89.326.72 1.9693 C4 96.87 95.20 1.67 1.5288 C5 94.75 92.88 1.87 1.4360 C798.92 96.86 2.06 1.1583 C8 96.11 91.67 4.44 1.7437

As can be seen in Table 9, the use of an exemplary X-Press compactor canimpact diagnostic resolution. However, in many cases this impact can benegligible even for compression ratios higher than 1000×. In someembodiments, the loss of diagnostic resolution can actually bealleviated by using more test patterns for designs with the X-Press, asshown in Tables 1 and 2. For example, when top-up patterns are used, theresolution difference of C2 decreases from 6.72 to 2.23 and the failingpattern ratio from 1.9693 to 1.1701. With compacted failing data, theexemplary X-Press compactor has an advantage for most ATEs with limitedfailing data buffers. The exemplary X-Press compactor can report about30%-50% fewer failing patterns to the ATE, which can decrease theprobability of truncated fail logs. Further, even with compressionhigher than 1000×, the diagnosis run time only approximately doubled,indicating that diagnostics using embodiments of the X-Press compactorcan be scaleable and suitable for high-volume production applications.

Exemplary Network Environments

Any of the aspects of the technology described above may be performedusing a distributed computer network. FIG. 28 shows one suitableexemplary network. A server computer 2800 can have an associated storagedevice 2802 (internal or external to the server computer). For example,the server computer 2800 can be configured to generate any of thedisclosed modular compactor embodiments for a given circuit-under-test(for example, as part of an EDA software tool, such as a test patterngeneration tool) or to perform diagnostics for signatures produced byany of the disclosed embodiments (for example, as part of a diagnosticsoftware tool). The server computer 2800 can be coupled to a network,shown generally at 2804, which can comprise, for example, a wide-areanetwork, a local-area network, a client-server network, the Internet, orother suitable network. One or more client computers, such as thoseshown at 2806, 2808, may be coupled to the network 2804 using a networkprotocol. The work may also be performed on a single, dedicatedworkstation, which has its own memory and one or more CPUs.

FIG. 29 shows another exemplary network. One or more computers 2902communicate via a network 2904 and form a computing environment 2900(for example, a distributed computing environment). Each of thecomputers 2902 in the computing environment 1700 can be used to performat least a portion of the compactor generation process or diagnosticprocess. The network 2904 in the illustrated embodiment is also coupledto one or more client computers 2908.

FIG. 30 shows that design information for a circuit-under-test (forexample, an HDL file, netlist, GDSII file, Oasis file, or other suitabledesign file representing the circuit-under-test together with its scanchains) can be analyzed using a remote server computer (such as theserver computer 2800 shown in FIG. 28) or a remote computing environment(such as the computing environment 2900 shown in FIG. 29) in order togenerate a suitable multi-stage compactor, selection circuit, and/oron-chip comparison and response collection circuit according to thedisclosed technology. At process block 3002, for example, the clientcomputer sends the CUT design information to the remote server orcomputing environment. In process block 3004, the CUT design informationis received and loaded by the remote server or by respective componentsof the remote computing environment. In process block 3006, compactor,selection circuit, or on-chip test hardware generation is performed toproduce design information for any of the disclosed embodiments. Atprocess block 3008, the remote server or computing environment sends theresulting design information (for example, an HDL file, netlist, GDSIIfile, Oasis file, or other suitable design file representing thecompactor either alone or together with the circuit-under-test and scanchains) to the client computer, which receives the data at process block3010.

It should be apparent to those skilled in the art that the example shownin FIG. 18 is not the only way to generate any of the disclosed hardwareembodiments using multiple computers. For instance, the CUT designinformation may be stored on a computer-readable medium that is not on anetwork and that is sent separately to the server or computingenvironment (for example, a CD-ROM, DVD, or portable hard drive). Or,the server computer or remote computing environment may perform only aportion of the hardware design procedures. Similar procedures using aremote server or computing environment can be performed to diagnosesignatures produced by embodiments of the disclosed compactorarchitecture.

Having illustrated and described the principles of the disclosedtechnology, it will be apparent to those skilled in the art that thedisclosed embodiments can be modified in arrangement and detail withoutdeparting from such principles. For example, although several of theembodiments include two compactors used to perform multi-stagecompaction, a single compactor can be used. For instance, the outputs ofthe overdrive register could be coupled to the inputs of the firstcompactor through a feedback network comprises multiplexers. Theoverdrive register, scan chains, and multiplexer could then becontrolled by a control circuit (for example, a finite state machine) tooperate the first compactor as a second compactor every v scan shiftcycles. In view of the many possible embodiments, it will be recognizedthat the illustrated embodiments include only examples and should not betaken as a limitation on the scope of the invention. Rather, theinvention is defined by the following claims and their equivalents. Wetherefore claim as the invention all such embodiments and equivalentsthat come within the scope of these claims.

1. A method of testing a circuit-under-test, comprising: during a firstinterval, providing test pattern data to inputs of a circuit-under-test;and during a second interval, providing masking instructions for amasking circuit to the inputs of the circuit-under-test.
 2. The methodof claim 1, wherein the first interval precedes the second interval. 3.The method of claim 1, wherein the second interval precedes the firstinterval.
 4. The method of claim 1, wherein the first interval comprisesa third and a fourth interval and the second interval comprises a fifthand sixth interval, and wherein the third and fourth intervals areinterspersed with the fifth and sixth intervals.
 5. The method of claim1, further comprising applying the masking instructions to a maskingcircuit as a test response to a test pattern generated from the testpattern data is being unloaded from the circuit-under-test.
 6. Themethod of claim 1, further comprising applying the masking instructionsto a masking circuit as a test response to a test pattern generated fromother test pattern data is being unloaded from the circuit-under-test.7. The method of claim 1, further comprising masking one or more testresponse bits according to the masking instructions.
 8. A circuitconfigured to perform the method of claim
 1. 9. A method of generatingselection logic for a selection circuit used to control the masking ofunknown states during test response compaction, the method comprising:generating a candidate polynomial for possible inclusion in a set ofaccepted polynomials, the candidate polynomial and the acceptedpolynomials describing connections of two or more inputs of theselection logic to a respective output of the selection circuit;selecting one or more test sets of polynomials, the test setsrespectively comprising at least the candidate polynomial and one ormore polynomials from the set of accepted polynomials; computing rankvalues for the one or more test sets; selecting the candidate polynomialfor inclusion in the set of accepted polynomials based at least in parton the rank values; and storing the set of accepted polynomialsincluding the candidate polynomial on one or more computer-readablemedia.
 10. The method of claim 9, further comprising: generating acircuit description of the selection logic, the selection logicimplementing polynomials from the set of accepted polynomials; andstoring the circuit description of the selection logic on one or morecomputer-readable media.
 11. The method of claim 9, wherein thecandidate polynomial is randomly generated.
 12. The method of claim 9,further comprising: determining whether the candidate polynomial sharesmore than a fixed number of terms with one or more of the polynomials inthe set of accepted polynomials; and generating a new candidatepolynomial if the candidate polynomial does share more than the fixednumber of terms with one or more of the polynomials in the set ofaccepted polynomials.
 13. The method of claim 9, wherein the act ofcomputing the rank values further comprises averaging the rank valuesfor the two or more test sets of polynomials, and wherein the act ofselecting the candidate polynomial is based at least in part on theaverage rank value.
 14. The method of claim 9, further comprisingrepeating the acts of generating, selecting, and computing for aplurality of additional candidate polynomials.
 15. The method of claim14, wherein the act of selecting the candidate polynomial for inclusionin the accepted set of polynomials is further based on comparing theaverage rank value of the candidate polynomial with respective averagerank values of the additional candidate polynomials.
 16. The method ofclaim 9, wherein the act of computing the rank values for the two ormore sets of polynomials comprises determining reduced-row echelon formsof the two or more test sets of polynomials.
 17. One or morecomputer-readable media storing computer-executable instructions forcausing a computer to perform the method of claim
 9. 18. A method ofgenerating masking instructions for a selection circuit operable to masktest response bits during testing of a circuit-under-test, the methodcomprising: simulating a test pattern being applied to thecircuit-under-test to produce a test response; identifying one or moreunknown states in the test response; selecting one or more test responsebits for masking based at least in part on the one or more identifiedunknown states; and storing one or more indications of the selected testresponse bits on one or more computer-readable media.
 19. The method ofclaim 18, further comprising encoding masking instructions for aselection circuit based at least in part on the selected one or moretest response bits.
 20. The method of claim 18, further comprisingidentifying one or more fault observation sites in the test response,the selection of the one or more test response bits for masking beingfurther based at least in part on the one or more identified faultobservation sites.
 21. The method of claim 20, wherein the act ofselecting one or more test response bits for masking comprises:assigning weights to one or more scan cells of a selected scan chain ofthe circuit-under-test based at least in part on the one or moreidentified unknown states, the one or more identified fault observationsites, or both the one or more identified unknown states and the one ormore identified fault observation sites; aggregating the weights for oneor more groups of scan cells within the selected scan chain; computingone or more scores for the selected scan chain based at least in part onthe aggregated weights; and determining whether to mask test responsebits from the selected scan chain based at least in part on the scores.22. The method of claim 21, wherein the weights represent a type ofvalue stored in the scan cells after the simulation of the test patternbeing applied.
 23. The method of claim 22, wherein one of the scorescomputed for the selected scan chain is proportional to an estimatednumber of errors that will be preserved if the selected scan chain ismasked.
 24. The method of claim 22, wherein one of the scores computedfor the selected scan chain is proportional to an estimated number oferrors that will be preserved if the selected scan chain is not masked.25. A method of generating masking instructions for a selection circuitoperable to mask test response bits during testing of a circuit, themethod comprising: assigning weights to one or more scan cells of aselected scan chain; aggregating the weights for one or more groups ofscan cells within the selected scan chain; computing one or more scoresfor the selected scan chain based at least in part on the aggregatedweights; determining whether to mask test response bits from theselected scan chain based at least in part on the scores; and storing anindication of the determination on one or more computer-readable media.26. The method of claim 25, further comprising: encoding maskinginstructions for the selection circuit based at least in part on thedetermination; and storing the masking instructions on one or morecomputer-readable media.
 27. The method of claim 25, wherein the weightsrepresent a type of value stored in the scan cells after a test patternis applied to a circuit-under-test.
 28. The method of claim 25, whereinthe act of assigning weights comprises assigning a first weight to afirst respective scan cell in the selected scan chain that captures anunknown value.
 29. The method of claim 28, wherein the act of assigningweights comprises assigning a second weight to a second respective scancell in the selected scan chain that captures a value indicative of atargeted fault.
 30. The method of claim 29, wherein the second weight isgreater than the first weight.
 31. The method of claim 29, wherein theact of assigning weights further comprises assigning a third weight to athird respective scan cell in the selected scan chain that capture avalue that is neither unknown nor indicative of a targeted fault. 32.The method of claim 31, wherein the second weight is greater than boththe first weight and the third weight, and wherein the third weight isgreater than the first weight.
 33. The method of claim 25, wherein oneof the scores computed for the selected scan chain is proportional to anestimated number of errors that will be preserved if the selected scanchain is not masked.
 34. The method of claim 25, wherein one of thescores computed for the selected scan chain is proportional to anestimated number of errors that will be preserved if the selected scanchain is masked.
 35. The method of claim 25, further comprisingrepeating the acts of assigning, aggregating, and computing for one ormore additional scan chains, thereby computing one or more scores foreach of the one or more additional scan chain.
 36. The method of claim35, wherein the act of determining whether to mask test response bitsfrom the selected scan chain further comprises comparing the one or morescores of the selected scan chain with the one or more scores for eachrespective additional scan chain.
 37. One or more computer-readablemedia storing computer-executable instructions for causing a computer toperform the method of claim 25.